こんにちは多分誰かがここで私を啓発することができます. 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
上記の行で「time error 3219 Invalid Operation」を実行して失敗します。私が変更したのは、この部分ではなく、コードの別の部分のビジネス オブジェクトのオブジェクト参照を追加したことだけです。以前は正常に実行され、他の変更のみがこのコードの下の新しいサブの開始ですが、デバッグモードでこのビットコードのみ (モジュール全体ではなく) を実行すると、エラーが発生しました。