BUG: RecordsetChangeComplete Does Not Fire on Recordset.Open
ID: Q192645
|
The information in this article applies to:
-
ActiveX Data Objects (ADO), versions 2.0, 2.1 SP2
-
Microsoft Visual Basic Enterprise Edition for Windows, versions 5.0, 6.0
SYMPTOMS
The RecordsetChangeComplete event of an ADO Recordset does not fire on the
Recordset.Open event.
RESOLUTION
You can issue a Recordset.MoveFirst immediately after the Recordset.Open
as a workaround, which causes the RecordsetChangeComplete event to fire.
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
- Open a Standard .exe project.
- From the Projects menu, choose Components, and then select the Microsoft
ActiveX Data Objects Library.
- Remove Form1 from the project.
- Insert a module (.bas) with the following code:
Sub main()
Dim myADOEvents As New ADOEvents
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set myADOEvents.rsEvent = rs
cn.Provider = "sqloledb"
cn.Open "Data Source=zjason2;Initial Catalog=pubs;", "sa", ""
'rs.open does not fire the RecordsetChangeComplete which it should.
rs.Open "Select * from authors", cn, adOpenForwardOnly, _
adLockReadOnly
'rs.MoveFirst 'if you uncomment this line than the
'RecordsetChangeEvent.
DoEvents
Stop
'Does fire the RecordsetChangeEvent, which is expected.
rs.Close
DoEvents
End Sub
- Insert a class module and name it ADOEvents in the Name property.
- Paste the following code in this ADOEvents class module:
Public WithEvents rsEvent As ADODB.Recordset
Private Sub rsEvent_RecordsetChangeComplete(ByVal adReason As
ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As
ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Debug.Print "RecordsetChangeComplete"
End Sub
- Run the project.
Additional query words:
Keywords : kbADO200 kbADO200bug kbDatabase kbVBp500 kbVBp600 kbGrpVBDB kbGrpMDAC kbDSupport kbADO210sp2 kbADO210sp2bug kbMDAC210SP2bug
Version : WINDOWS:2.0,2.1 SP2,5.0,6.0
Platform : WINDOWS
Issue type : kbbug