Pass an ADO recordset
Using Harald;s example, could you not just use
Function RunADOQueryFunction(strFullName, strSQL, strTable)
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
'Open db, Get data, ...
RunADOQueryFunction =Rst
Cnn.Close
Set Rst = Nothing
Set Cnn = Nothing
End Sub
Sub Main()
rst = RunADOQueryFunction(strFullName, strSQL, strTable)
End Sub
This assumes you know how to connect and issue the SQL and get the recordset
back. Or is that the real question ?
--
HTH
Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
"Quartz" wrote in message
...
Thanks Harald! My preferred structure would be more like
the following - is something like this possible?:
Sub Main_Sub()
...other code...
'Call query function and return recordset
rst = RunADOQueryFunction(strFullName, strSQL, strTable)
...do stuff with rst...
rst.close
end sub
-----Original Message-----
Hi
If you set reference to ADO (Microsoft ActiveX Data
Objects) then you have a
datatype called ADODB.Recordset that I believe you can
pass like this:
Sub test()
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
'Open db, Get data, ...
Call Another(Rst)
Cnn.Close
Set Rst = Nothing
Set Cnn = Nothing
End Sub
Sub Another(Rst As ADODB.Recordset)
'do stuff
End Sub
--
HTH. Best wishes Harald
Followup to newsgroup only please
"Quartz" skrev i
melding
...
Hello.
Is is possible to structure VBA code so that I can call
a
function that runs a query, say in ADO, return the data
to
a recordset and then return that recordset to the
calling
subroutine in another module?
If so, I need some example code that illustrates how to
do
this. I have been unsuccessful so far. My call to the
function works and the query returns the data into the
recordset, but I can't seem to pass the recordset back
to
the calling subroutine. Apparently, you can't pass it
like
an array? ...Unless I not dimensioning my variables
correctly???
Your example code would be most helpful. Thanks in
advance.
.
|