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でのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …

no image

Accessの複雑な処理のレポート帳票で1ページのみ出力されるはずが2ページ目になぜかページヘッダーが出るトラブルに見舞われ

レポートのデザインビューでいうと上から、レポートヘッダー、ページヘッダー、グループヘッダー、詳細、グループフッター、ページフッター、レポートフッター・・・というような、結構細かいレポートを作っている。 …

Access「実行時エラー3061 パラメータが少なすぎます。2を指定してください」で意外な決着

クロス集計クエリをVBAで読むときで、かつパラメータクエリを使う場合には、クエリのパラメータパネルで、別途、パラメータを指定しなくてはならない(VBAで使わないなら不要) 本日のトラブルは、その後、W …

Office365にはSharePointリストという表データが保存できる機能がありAccessのリンクテーブルにできる

Office365では、AccessのWebアプリを作れる。 それで今、勉強しているのだが、Office365にはSharePointリストという表データが保存でき、それをAccessのリンクテーブル …

no image

Excelで使える祝日判定のWebAPIを見つけた

Excelの関数には、曜日を判定できる関数(WEEKDAY)が用意されている。また、表示だけなら書式設定でもできる。しかし祝日となると、関数も何も、用意されていない。 祝日は年により、突然増えたり、「 …