VBAのMS Access 2007で保存されたクエリを実行するにはどうすればよいですか?
SQLをコピーしてVBAに貼り付けたくありません。むしろ、クエリの名前を実行するだけです。
これは機能しません... VBAはクエリを見つけることができません。
CurrentDb.Execute queryname
次の方法で実行できます。
DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit
OR
CurrentDb.OpenRecordset("yourQueryName")
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
に問い合わせるクエリの名前。
CurrentDb.Executeを使用するには、クエリがアクションクエリであり、引用符で囲まれている必要があります。
CurrentDb.Execute "queryname"