MS Access

「3070 有効なフィールド名または式として認識できません」エラーで、困った

投稿日:2012年1月23日 更新日:

Accessで、クエリ単体での実行だとうまくいくのに、いざ、そのクエリをVBAコード内で実行すると、上記エラーが出る。

難問だった。
SQL文内でDISTINCTを使っているからかなーとか、LEFT JOINが悪いのかなーとか、3時間ほど悩んだ。
が、何とか解決。

問題は、SQL文の「*」にあった。

正: strSQL = “SELECT DISTINCT 企業.* FROM 企業 LEFT JOIN 履歴 ON 企業.ID = 履歴.企業ID” & _
誤: strSQL = “SELECT DISTINCT * FROM 企業 LEFT JOIN 履歴 ON 企業.ID = 履歴.企業ID” & _

二つのテーブルを使っている場合には、どのテーブルのフィールドを出力するか、きちんと明示しないとダメなんだね。
自分の場合、SQLを作る際に、Accessでまずは作るのだが、自動だと冗長に作られるので、「企業.」をエディタで全削除していた。
そのせいだった。

何とか今回もクリア。
しかしAccessに乗った旅はまだまだ続きそうであった。

-MS Access

執筆者:

関連記事

no image

「抽出条件 フォーム access not in クエリ」とか「forms access in 抽出条件 複数」とかでググっても出てこなかったので、メモ

Accessでフォームからクエリに抽出条件をパラメータで渡すやり方が分からなくて、数時間苦労。 このタイトルがGoogleの肥やしになって、このサイトに来てくれる人が増えれば。。。 要するに私がやりた …

no image

Accessで1件ずつレコードを読んでスナップショットファイルを作ってメール送信する処理

作るのにWebに情報が無くてすごく苦労したので備忘録。 私にしかわからないかもしれないけど、見た人も何か参考になるかもしれないから、公開しよっと。 ■事前準備 1.処理を起動するフォームにボタン「調査 …

no image

Accessの再クエリーでデータが移動してしまうのを解消

仕事メモ。 メイン・明細フォームのときは、 http://www.sanryu.net/acc/tips/tips323.htm を参考に、 Dim m_offset As Long ‘レ …

no image

SqlServer 2008 Express R2 をインストールしようとしているのだが、最後の最後でうまくいかない

前回、試しに自分の普段のPCでSqlServer2008をインストールしたのだが、今回はサーバ(といってもXP)を対象に同様のことをしてみた。 しかしインストールの最後で「there was an e …

no image

Accessでレポートのレコードソースを動的にセットしたい

今までは、フォーム上のボタンをクリックしたら、レポートをデザインで開いてからレコードソースをセットしなければならないと思っていた。 つまり、こんなやり方をやっていた。 フォーム:  【ボタン1をクリッ …