2014-12-02 62 views
1

作为VB6新手,我试图更新应用程序的旧版本。但是,下面的代码出现了:过程声明错误

过程声明不匹配事件的描述或过程具有相同名称

这里是代码片断:

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

Dim Position As Long 
Position = datPrimaryRS.Recordset.AbsolutePosition 
If Position = -1 Then Position = 0 
datPrimaryRS.Caption = "Record: " & CStr(Position) 
End Sub 

错误指向该线:

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

任何帮助将不胜感激

+0

'BYVAL记录作为ADODB.Recordset'是不一样的签名,你是事件试图委托给这个子。 – OneFineDay 2014-12-02 20:09:58

+0

http://technet.microsoft.com/en-us/ms675134(v=vs.71).aspx – Steve 2014-12-02 20:11:06

+0

@OneFineDay对不起,看来我写错子那里。我更新了分。 – Navron 2014-12-02 20:16:50

回答

1

正确的签名应该是:

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

的更多信息:

http://support.microsoft.com/kb/222145

http://www.vbmigration.com/detknowledgebase.aspx?Id=105

+0

虽然这显然是沿着正确的轨道,我现在得到这个错误:**用户定义的类型未定义**我正在使用Microsoft ActiveX数据对象2.0库 – Navron 2014-12-03 21:21:53

+0

尝试引用“Microsoft ActiveX数据对象2.8库”,然后使用“Imports ADODB”。 – xpda 2014-12-03 22:36:14

+0

另外,我添加了“Dim datPrimaryRS As New Recordset” – xpda 2014-12-03 22:38:23