小编msd*_*734的帖子

访问VBA QueryDef.Execute()错误3420

这里有一段非常简单的代码,这是一个非常烦人的问题.这是一个较大的子程序的一部分,但应在此处找到唯一的相关信息.

Dim db As DAO.Database
Set db = CurrentDb

' If the associated hospital is new, add it first
If newHName = True Then
    Dim qdfNewHospital As DAO.QueryDef
    Set qdfNewHospital = db.CreateQueryDef
    qdfNewHospital.SQL = "INSERT INTO tblHospital (HospitalName)" & _
        " VALUES ('" & hName & "')"
    qdfNewHospital.Execute dbFailOnError
    Dim iAffected As Integer
    iAffected = qdfNewHospital.RecordsAffected
    Debug.Print "Inserting hospital " & hName & " affected " & iAffected & " row(s)"
End If
Run Code Online (Sandbox Code Playgroud)

我在此行收到错误3420"对象无效或不再设置":

qdfNewHospital.Execute dbFailOnError
Run Code Online (Sandbox Code Playgroud)

这似乎表明我知道QueryDef创建的常见问题如下:

CurrentDb.CreateQueryDef
Run Code Online (Sandbox Code Playgroud)

由于CurrentDb如何在内部工作,过早处置.这个问题的常见解决方案显然是我在这里所做的,在变量中保存"CurrentDb snapshot"并从那里创建QueryDef以确保它不被处理掉.一些额外的细节: …

ms-access vba access-vba

6
推荐指数
1
解决办法
3562
查看次数

标签 统计

access-vba ×1

ms-access ×1

vba ×1