VBA6中ADODB.Recordset的RecordsetChangeComplete事件正确声明方式
错误原因
你当前的事件声明存在参数类型不匹配问题:
pError参数声明为VBA内置的Error类型,而该事件要求传入的是ADODB库专属的ADODB.Error类型pRecordset参数未指定ADODB库限定,当工程同时引用DAO等其他含Recordset类型的库时,会优先匹配其他库的类型,导致和事件定义不匹配- 枚举类型也建议补充ADODB限定,避免不同库同名枚举带来的冲突
正确声明代码
Private WithEvents AdoRecordset As ADODB.Recordset Private Sub AdoRecordset_RecordsetChangeComplete( _ adReason As ADODB.EventReasonEnum, _ pError As ADODB.Error, _ adStatus As ADODB.EventStatusEnum, _ pRecordset As ADODB.Recordset) ' 你的业务逻辑写在这里 End Sub
补充说明
如果你的工程仅引用了ADODB一个数据库相关类库,仅给pError补充ADODB.前缀也可以解决报错,但给所有相关类型都加库限定是最稳妥的写法,完全不受类库引用顺序影响。
内容的提问来源于stack exchange,提问作者user14806945
相关产品推荐
相关产品推荐

