Microsoft Access 掲示板

SQLビューでの書き込み後「デザインビュー」押下で構文エラーが表示される / 2

7 コメント
views
4 フォロー
2
hatena 2021/10/27 (水) 00:44:14 修正

とりあえず、001 とか 002 のような数字が始まるテーブル名は、SQL内では [] で囲む必要があります。
[001][002]というように。

(※テーブル名やカラム名などは仮称)

とのことなので、実際は違うのかもしもませんが。
りんごさんも指摘してますが、全角とか全角空白もエラーの原因になることがありますので、
できれば実際のSQLをコピーしてそのまま貼り付けてもらった方が原因の特定がしやすいですけどね。

SQLビューに戻ると、シングルクォーテーションの箇所だけが黒のバックカラーで反転され、白抜き文字の表示となっています。

提示のSQLにはシングルクォーテーションはないですけど。

通報 ...
  • 4

    hatenaさん
    ご教示ありがとうございます。本日確認してみます。たしかに[]で括っていなかったですが、他のアクセスのデザインビューで作成したインナージョインのクエリをSQLビューで確認した時、ローカルのワークテーブルは[]で括ってなかったのでそれに合わせた記憶があります。どちらにしても一度確認してみます。あと、実際のSQLを貼り付けた方が…との由、ごもっともかと存じます。ご教示いただいた解決策でクリアにならない場合は、エラーのキャプチャも含めてそのまま貼付して解決策を仰ぎたいと思います。取り急ぎ返信まで。

    5

    FROM句では必要ないですが、それ以外では[]で括る必要があります。

    (SELECT [002].key, [002].ymd, FROM 002 WHERE [datatalbe].key = [002].key AND [datatalbe].ymd < [002].ymd)

    括らないと、数値と区別がつかないので。FROM句には数値が来ることはないのでエラーにならないのだと思います。

    6

    hatenaさん
    追加でご教示いただきありがとうございます。
    なるほど、勉強になります。

    7

    下記で構文エラーが出なくなりました!

    SELECT [datatalbe].key, MAX([datatalbe].ymd) INTO 003
    FROM [datatalbe]
    WHERE EXISTS (SELECT * FROM [002] WHERE [datatalbe].key = [002].key AND [datatalbe].ymd < [002].ymd) GROUP BY key;

    とにかく、エラーが出なくなるまで数値のワークテーブルを[]で括ってみようと思い、試していたら解決しました。

    hatenaさん、りんごさん、この度はありがとうございました、勉強になりました。

    てか、仮称とはいえ、tableをtalbeと記載ミスしてますね…。そりゃ、どこかが全角になってないか?って思いますよね。失礼しました。

    SQLマネジメントスタジオでSQL文投げた時と比べて、リクエスト投げても全くレスポンス返ってこないですが、それは別問題なのでなんとかします。SQLマネジメントスタジオ使えない環境のオペレーターが月次の作業をするのでAccessでなんとかしたくて…。今日はぐっすり寝られそうです。ありがとうございました!