Connecting Tech Pros Worldwide Forums | Help | Site Map

Access recordset alternative?

maccaroo
Guest
 
Posts: n/a
#1: Nov 13 '05
Hi

Does anyone know an alternative way to get the result from a query in
access vba? I've got a form with a few labels that need populating.
Even if I only need a single value, the only way I can see to get some
of the data is by creating a recordset object and populating it, and
then extracting the field I need.

Here's my code:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim strCompanyName As String

strSQL = "SELECT tblCompanies.Name FROM tblCompanies WHERE
CompanyID = " & Me.Recordset!CompanyID

Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

Me.lblCompanyName.Caption = rs!Name

Isn't there something like:

MyValue = RunSQL("SELECT tblCompanies.Name FROM tblCompanies WHERE
CompanyID = " & Me.Recordset!CompanyID)

Terry Kreft
Guest
 
Posts: n/a
#2: Nov 13 '05

re: Access recordset alternative?


Look at DLookup in help.

Personally though I would go with what you've got. If you really have a lot
of bits like this you can always write your own function to handle it

Function MyLookup(SQL as string) as variant
Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset(SQL, dbOpeSnapshot)

MyLookup = rs.Fields(0).Value
End Function


and call it
dim SQL as string

SQL = "SELECT tblCompanies.Name " _
& "FROM tblCompanies " _
& " WHERE CompanyID = " _
& Me.Recordset!CompanyID

Me.lblCompanyName.Caption = MyLookUp(SQL)


or (horrible)

Me.lblCompanyName.Caption = MyLookUp("SELECT tblCompanies.Name " _
& "FROM tblCompanies "
_
& " WHERE CompanyID = "
_
&
Me.Recordset!CompanyID)



--
Terry Kreft
MVP Microsoft Access


"maccaroo" <maccaroo@yahoo.co.uk> wrote in message
news:1106654415.326153.29950@f14g2000cwb.googlegro ups.com...[color=blue]
> Hi
>
> Does anyone know an alternative way to get the result from a query in
> access vba? I've got a form with a few labels that need populating.
> Even if I only need a single value, the only way I can see to get some
> of the data is by creating a recordset object and populating it, and
> then extracting the field I need.
>
> Here's my code:
>
> Dim db As DAO.Database
> Dim rs As DAO.Recordset
> Dim strSQL As String
> Dim strCompanyName As String
>
> strSQL = "SELECT tblCompanies.Name FROM tblCompanies WHERE
> CompanyID = " & Me.Recordset!CompanyID
>
> Set db = CurrentDb
> Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
>
> Me.lblCompanyName.Caption = rs!Name
>
> Isn't there something like:
>
> MyValue = RunSQL("SELECT tblCompanies.Name FROM tblCompanies WHERE
> CompanyID = " & Me.Recordset!CompanyID)
>[/color]


Closed Thread