Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a function that is supposed to return an ADODB.RecordSet. The code is
shown below. My problem is that when I close the connection and close the recordset in this function the function returns nothing. I commented out the lines and it works fine. How doe I Keep the recordset even after the connection has been closed? Public Function RunQuery(ByVal strSelect As String, ByVal strFrom As String, _ ByVal strWhere As String, ByVal strOrderBy) As ADODB.Recordset Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset 'Open connection to the database cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & m_cDBLocation & ";" rst.Open m_cUpdateDetailsFile, cnt, adOpenKeyset, adLockOptimistic, adCmdTableDirect Set rst = cnt.Execute(strSelect & " " & strFrom & " " & strWhere & " " & strOrderBy) Set RunQuery = rst ' ' Close ADO objects ' rst.Close ' cnt.Close ' Set rst = Nothing ' Set cnt = Nothing |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Jim,
Don't close the RS, just set the connection to nothing to get a disconnected recordset. Stephen Bullen's VBA book is quite a good ref on this. You might also want to have a look at http://www.able-consulting.com/ADO_Faq.htm This is an extract of the kind of thing you need: Public Function DsRs(strSQL as String) as ADODB.Recordset 'set up the connnection string here Set DsRs = New ADODB.Recordset With DsRs .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockBatchOptimistic End With DsRs.Open strSQL, strCon, , , adCmdText Set DsRs.ActiveConnection = Nothing Exit Function Robin Hammond www.enhanceddatasystems.com "Jim Thomlinson" wrote in message ... I have a function that is supposed to return an ADODB.RecordSet. The code is shown below. My problem is that when I close the connection and close the recordset in this function the function returns nothing. I commented out the lines and it works fine. How doe I Keep the recordset even after the connection has been closed? Public Function RunQuery(ByVal strSelect As String, ByVal strFrom As String, _ ByVal strWhere As String, ByVal strOrderBy) As ADODB.Recordset Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset 'Open connection to the database cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & m_cDBLocation & ";" rst.Open m_cUpdateDetailsFile, cnt, adOpenKeyset, adLockOptimistic, adCmdTableDirect Set rst = cnt.Execute(strSelect & " " & strFrom & " " & strWhere & " " & strOrderBy) Set RunQuery = rst ' ' Close ADO objects ' rst.Close ' cnt.Close ' Set rst = Nothing ' Set cnt = Nothing |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks a bunch...
"Robin Hammond" wrote: Jim, Don't close the RS, just set the connection to nothing to get a disconnected recordset. Stephen Bullen's VBA book is quite a good ref on this. You might also want to have a look at http://www.able-consulting.com/ADO_Faq.htm This is an extract of the kind of thing you need: Public Function DsRs(strSQL as String) as ADODB.Recordset 'set up the connnection string here Set DsRs = New ADODB.Recordset With DsRs .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockBatchOptimistic End With DsRs.Open strSQL, strCon, , , adCmdText Set DsRs.ActiveConnection = Nothing Exit Function Robin Hammond www.enhanceddatasystems.com "Jim Thomlinson" wrote in message ... I have a function that is supposed to return an ADODB.RecordSet. The code is shown below. My problem is that when I close the connection and close the recordset in this function the function returns nothing. I commented out the lines and it works fine. How doe I Keep the recordset even after the connection has been closed? Public Function RunQuery(ByVal strSelect As String, ByVal strFrom As String, _ ByVal strWhere As String, ByVal strOrderBy) As ADODB.Recordset Dim cnt As New ADODB.Connection Dim rst As New ADODB.Recordset 'Open connection to the database cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & m_cDBLocation & ";" rst.Open m_cUpdateDetailsFile, cnt, adOpenKeyset, adLockOptimistic, adCmdTableDirect Set rst = cnt.Execute(strSelect & " " & strFrom & " " & strWhere & " " & strOrderBy) Set RunQuery = rst ' ' Close ADO objects ' rst.Close ' cnt.Close ' Set rst = Nothing ' Set cnt = Nothing |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Excel 97 ADODB Recordset.Find "Invalid Use" error | Excel Programming | |||
ADODB Recordset problem | Excel Programming | |||
0 with ADODB Recordset | Excel Programming | |||
adodb.recordset with excel | Excel Programming | |||
ADODB Recordset | Excel Programming |