web-dev-qa-db-ja.com

MS Access-VBAで名前で保存されたクエリを実行する

VBAのMS Access 2007で保存されたクエリを実行するにはどうすればよいですか?

SQLをコピーしてVBAに貼り付けたくありません。むしろ、クエリの名前を実行するだけです。

これは機能しません... VBAはクエリを見つけることができません。

CurrentDb.Execute queryname
25
tdjfdjdj

次の方法で実行できます。

DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit

OR

CurrentDb.OpenRecordset("yourQueryName")
38
Taryn

VBAがquerynameを見つけられない理由を調査する必要があります。

qryAddLoginfoRowという名前の保存済みクエリがあります。現在の時刻の行をmyloginfoテーブルに挿入します。 CurrentDb.Executeによって名前で呼び出された場合、そのクエリは正常に実行されます。

CurrentDb.Execute "qryAddLoginfoRow"

私の推測では、querynameは現在のデータベースのQueryDefsコレクションに存在しないクエリの名前を保持する変数、またはquerynameは既存のクエリのリテラル名ですが、引用符で囲みませんでした。

編集:現在のデータベースのQueryDefsコレクションにquerynameが存在しないことを受け入れる方法を見つける必要があります。これらの2行をVBAコードのCurrentDb.Execute行の直前に追加します。

Debug.Print "queryname = '" & queryname & "'"
Debug.Print CurrentDb.QueryDefs(queryname).Name

これらの2行のうち2行目は、実行時エラー3265、「このコレクションでアイテムが見つかりません。」をトリガーします。次に、イミディエイトウィンドウに移動して、 CurrentDbからExecuteに問い合わせるクエリの名前。

10
HansUp

CurrentDb.Executeを使用するには、クエリがアクションクエリであり、引用符で囲まれている必要があります。

CurrentDb.Execute "queryname"
5
tahwos