这里有一段非常简单的代码,这是一个非常烦人的问题.这是一个较大的子程序的一部分,但应在此处找到唯一的相关信息.
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以确保它不被处理掉.一些额外的细节: …