Microsoft Access 掲示板

フィールド名に半角数字を使用した時のエラーについて

2 コメント
views
4 フォロー

SQLで、おためしテーブルから、データを取得する時の問題です。

フィールド名を3(3は半角です)にして、以下の命令文で呼び出すと、登録していない3を取得してきます。
SELECT 3 FROM おためし WHERE JAN = '1000000000023'

フィールド名を3日(3は半角です)にして、以下の命令文で呼び出すと、フィールド名が見つからずにエラーになります。
SELECT 3日 FROM おためし WHERE JAN = '1000000000023'

フィールド名を三日にして、以下の命令文で呼び出すと、正常な値が取得できます。
SELECT 三日 FROM おためし WHERE JAN = '1000000000023'

UPDATEで、データを更新する時には、フィールド名が3でも、正常に更新できます。
フィールド名に数字を使うと、非常に便利な場面があるのですが、
半角の数字でも、エラーが出るのはなぜでしょうか?
また、エラーを回避する方法はあるのでしょうか?

タークン
作成: 2024/03/15 (金) 19:18:58
通報 ...
1
タークン 2024/03/15 (金) 19:47:29 7a0a1@2705a

質問したばかりで申し訳ないです。
全角数字は禁止と認識していましたが、数字だけ、もしくはフィールド名の先頭に数字を使ってもエラーになるみたいでした。
多少面倒ですが、先頭にアルファベット1文字加ええることで、回避できました。

2
hatena 2024/03/16 (土) 00:40:28 修正

数字だけのフィールド、数字で始まるフィールド名以外にも、スペースを含むフィールド名、予約語のフィールド名、特殊記号を含むフィールド名などを使うとエラーになります。

Access データベースで特殊文字を使用したエラー - Microsoft 365 Apps | Microsoft Learn

そのような名前を使わないようにするのが原則ですが、どうしても使わなければならないときは、[ ]で囲むと使用できます。

SELECT [3] FROM おためし WHERE JAN = '1000000000023'