【问题标题】:ADODB RecordsetChangeComplete event handler declaration in VBA6VBA6 中的 ADODB RecordsetChangeComplete 事件处理程序声明
【发布时间】:2021-11-05 09:27:47
【问题描述】:

VBA6 中 RecordsetChangeComplete ADODB.Recordset 事件处理程序的正确声明是什么?

对象浏览器的版本

Private WithEvents AdoRecordset As ADODB.Recordset

Private Sub AdoRecordset_RecordsetChangeComplete( _
            adReason As EventReasonEnum, _
            pError As Error, _
            adStatus As EventStatusEnum, _
            pRecordset As Recordset)
End Sub

导致“过程声明与同名事件或过程的描述不匹配”。

【问题讨论】:

  • 只是丢掉AdoRecordset_ 部分。
  • 你是如何使用这个的?喜欢withevents AdoRecordset as ADODB.Recordset?
  • @nathan-sav:是的,Private WithEvents AdoRecordset As ADODB.Recordset
  • The Object Browser's version - 你为什么要从对象浏览器中复制它?当您从顶部的下拉列表中选择对象时,VB 会自动且正确地生成它们。

标签: excel vba adodb


【解决方案1】:

这是我允许 VBA 生成事件时得到的结果。注意 ByVal 的:

Private Sub AdoRecordset_RecordsetChangeComplete(ByVal adReason As ADODB.EventReasonEnum, _
                                                 ByVal pError As ADODB.Error, _
                                                 adStatus As ADODB.EventStatusEnum, _
                                                 ByVal pRecordset As ADODB.Recordset)

End Sub

【讨论】:

  • 这是一个不同的事件,但感谢您的提醒!我忘了这个功能
  • @PChemGuy 好收获!我更新了我的答案。注意我的事件和你的事件之间的区别:在某些参数上添加了 ByVal。
猜你喜欢
  • 2023-03-26
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多