1

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

4

0 に答える 0