我正在尝试将两个表Data与此代码进行比较:
Set rstA = dbs.OpenRecordset("SerialAccount_a")
Set rstB = dbs.OpenRecordset("SerialAccount_b")
While Not rstB.EOF
serialNumber = rstB.serial
rstB.Filter = "serial = '" & serial & "'"
Set rstFiltered = rstB
Do While Not rstFiltered.EOF
If rstA.Fields("serial") = rstB.Fields("serial") Then
If rstA.Fields("accountnumber") <> rstB.Fields("accountnumber") Then
accountMessage = "... do not match!"
Debug.Print accountMessage
ElseIf rstA.Fields("model_number") <> rstB.Fields("model_number") Then
modelMessage = "... do not match!"
Debug.Print modelMessage
End If
End If
Wend
Wend
当我尝试运行它时,编译器在行上给出了错误“找不到方法或数据成员”:
serialNumber = rstB.serial
我不明白为什么,serial是这两个表中的一列。有人能否告诉我为什么会出现这个错误?
答案 0 :(得分:4)
您需要rstB!serial
或rstB.Fields("serial")
。前者使用“bang”运算符(!
)作为后者的语法糖。
当您撰写rstB.serial
时,您试图引用记录集的serial
属性。但记录集对象没有serial
属性,因此您收到“找不到方法或数据成员”错误。