嗨也许有人可以在这里启发我。使用 VBA 代码,我想从查询中检查零记录计数,现在它在我之前添加的代码中失败了。下面的代码显示设置:
Sub MySub()
Dim db As DAO.Database
Set db = CurrentDb()
Dim qdf As DAO.QueryDef
Dim sqlQry As String
Dim rst As DAO.Recordset
sqlQry = "My Query String"
If DLookup("Name", "MSysObjects", "Name= 'QueryName1'") <> "" Then
Set qdf = CurrentDb.QueryDefs("QueryName1")
qdf.SQL = sqlQry
Else
Set qdf = CurrentDb.CreateQueryDef("QueryName1", sqlQry)
End If
Set rst = db.OpenRecordset(qdf.Name) << FAILS HERE
If rst.RecordCount <> 0 Then
DoCmd.OpenQuery (qdf.Name)
Else
MsgBox "no data returned"
Exit Sub
End If
Set qdf = Nothing
Set db = Nothing
End Sub
它在上面显示的行上失败,运行“时间错误 3219 无效操作”。我唯一改变的是为代码的另一部分而不是这部分添加了业务对象的对象引用。它之前运行良好,只有其他更改是在此代码下方开始新的子代码,但在调试模式下仅运行此位代码(而不是整个模块)时出现错误。