VBA访问中的运行时错误424

时间:2014-11-25 11:46:19

标签: vba ms-access access-vba

Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset

Set rst1 = CurrentDb.OpenRecordset("Table1", 2)
Set rst2 = CurrentDb.OpenRecordset("Table2", 2)

Dim strName As String

If Not (rst1.EOF And rst1.BOF) Then
    rst1.MoveFirst
    Do Until rst1.EOF
        rst1.Edit

        strName = rst1![Name]
        rst2.FindFirst ("[Name] = '" & strName & "'")

        If rst2.NoMatch Then
            If rst1![Accepted] Is Not Null Then 'here is the line causing error
                ... 'more code going on

所以,上面是我的代码的摘录。我在不改变背景的情况下尽可能地简化了它。情况如下:

我有两个表,想要检查表1中是否已经存在Table1中的某个人。如果是这样的话,那就忽略它。如果不是,那么我想检查表1中的另一个条件(如果DateTime字段[已接受]不是NULL)并且是否满意继续处理该人&#39 ; s数据。

然而,即使我能够正确地获得rst1![Name],当我进入内部if时,我得到 424运行时错误:需要对象

任何想法如何克服这个?

1 个答案:

答案 0 :(得分:0)

第二个If - 语句应为

If Not IsNull(rst1![Accepted]) Then

Is - 运算符用于比较对象引用,因此是错误消息。