Microsoft KB Archive/192645

= BUG: RecordsetChangeComplete Does Not Fire on Recordset.Open =

Article ID: 192645

Article Last Modified on 3/2/2005

-

APPLIES TO


 * Microsoft ActiveX Data Objects 2.0
 * Microsoft ActiveX Data Objects 2.1 Service Pack 2
 * Microsoft ActiveX Data Objects 2.5
 * Microsoft ActiveX Data Objects 2.6
 * Microsoft ActiveX Data Objects 2.7
 * Microsoft Visual Basic 5.0 Enterprise Edition
 * Microsoft Visual Basic 6.0 Enterprise Edition

-



This article was previously published under Q192645



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.



Steps to Reproduce Behavior
 In Visual Basic, open a Standard .exe project. From the Projects menu, choose References, and then select the Microsoft ActiveX Data Objects Library. Remove Form1 from the project.  Insert a module (.bas). Add 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= ;Initial Catalog=pubs;", "sa", ""

'rs.open does not fire the RecordsetChangeComplete which it should. rs.Open "Select * from authors", cn, adOpenForwardOnly, _ adLockReadOnly 'Uncomment the next line to fire the RecordsetChangeEvent 'rs.MoveFirst 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 </li> Run the project.</li></ol>

Keywords: kbbug kbdatabase kbpending KB192645

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.