Advertisement
4_2005-2006 Databases/ Data Access/ DAO/ ADO #155862

A basic ADO Open and Requery routine

New to ADO? Worried about ADO? This little subroutine gets round the problems of opening ADO recordsets. Please look elsewhere on this site for info on opening the database itself. If you open a Recordset in your code, ADO expects you to close it before re-opening. But if it's not open you can't close it... (Oh My!). Here's my solution. It requires a public ADODB.Connection - I call it gCn. The routine will open a new recordset (compatible with Janus GridEx), or refresh it if it's open or if the SQL has changed. Optional ReadOnly argument.

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
Public Sub ADO_OpenRs(rs As Recordset, szSource$, Optional bReadOnly = False)
' Open or Requery a Recordset.
On Error GoTo lab_Err
If rs.State = adStateClosed Or rs.Source <> szSource Then
 If rs.State <> adStateClosed Then rs.Close
 rs.Open szSource, gCn, adOpenStatic, IIf(bReadOnly, adLockReadOnly, adLockOptimistic)
Else
 rs.Requery
End If
lab_Exit:
 
 Exit Sub
 
lab_Err:
 
 MsgBox Err.Description
 GoTo lab_Exit
 
End Sub
Original Comments (3)
Recovered from Wayback Machine