はじめに
以前にAccessを使って作業していたときに、クエリを開こうとしてもエラーが出てしまい開けなくなることがありました。
実行もできなければ、エラーが出て編集することも出来ない。
クエリを作り直すにも、中身のSQL文を見ることができないので困りました。
滅多に起きなさそうな現象なので、同じように困った事のある人がいるのか分かりませんが、クエリが開けなくなってしまったときに中身のSQL文を見る方法を紹介したいと思います。
クエリの内容を見る方法
VBEのイミディエイトウィンドウに
? CurrentDb.QueryDefs("クエリ名").SQL
と入力してEnterを押すだけです。
手順
詳しく手順を説明します。(Access2016での手順になります。)
Alt + F11 を押し、Visual Basic Editorを開きます。
メニューの 表示→イミディエイトウィンドウ を選択し、イミディエイトウィンドウを表示します。
イミディエイトウィンドウに
? CurrentDb.QueryDefs("クエリ名").SQL
と入力し、Enterを押します。
("クエリ名"の部分は、SQL文を表示したいクエリの名前を入れてください。)
エラーの原因
ちなみに私が経験したエラーは、フィールド名の先頭に全角のアラビア数字があるのが原因でした。
エラーを回避する為には全角のアラビア数字から始まるフィールド名を使わないか、フィールド名を[]で囲むとよいようです。
通常であれば全角のアラビア数字から始まるフィールド名を使用したクエリは、フィールド名を[]で囲まないと構文エラーによりそもそも保存が出来ないのですが、なんらかの理由で構文エラーがあるまま保存されてしまい、クエリを実行できず編集することも出来なくなったのです。
この記事を書くためにエラーを再現しようとしたのですが、Access2016では再現できなかったので改善されているのかもしれません。
以前にエラーが出たAccessのバージョンは2007でした。
もし、同じようにクエリが開けず困った人の参考になれば幸いです。