0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Microsoft Accessでフィールド名に予約語を使うと 複数回フィールドを定義することはできません エラーが発生する時がある または演算子がありません

Posted at

Accdbでも発生を確認

前回の記事
Access 今日のトリビア Schema.iniでフィールド名をブランケットで囲むと()がつく
https://qiita.com/Q11Q/items/bd1382bea8bfae5d9d04
でとりあげた
Access 2002 以降のバージョンの Access の予約語の一覧
https://docs.microsoft.com/ja-jp/office/troubleshoot/access/reserved-words
はやはりaccdb形式でもエラーが起きることが確認できました。

しかしメッセージが斜め上

しかし、そこで発生したのが、
複数回フィールドを定義できません
エラーでした、

発生した状況

Insert Into でCsvかテキスト形式のデータから予約語を含むフィールド名を持つテーブルにデータを追加するときに発生するようです。
ネットではエクスポートのときにも発生するとされています。
また、このときクエリがデザインビューで開こうとしてもエラーが発生し、開いて修正ができないときもあります。

しかも解説を検索しても、

複数のフィールドが同じ名前で定義されているテーブルを作成しようとしました。テーブルの各フィールドは固有の名前を持っている必要があります。

というものしか出てきません。
このエラーは原因が複数考えられ、しかもフィールド名の重複と大して関係がないということがわかります。
たまたま予約語が危ないことを意識していたので比較的早期にわかりましたが。

クエリが開けないエラー 演算子がありません

予約語が入っているとクエリを実行しようとしてもエラーが発生し、さらにデザインビューで開こうとしてもエラーになるときがあります
構文エラー : 演算子がありません。
http://dbhikaku.web.fc2.com/jet_error/jet_error_3191.html
これも予約語を使わないことで発生しなくなるようです。
Accessのクエリがエラーで開けなくなったら
https://blog.withonoware.co.jp/tech/2017/07/23/access%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%8C%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A7%E9%96%8B%E3%81%91%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%89/

またこうしたときのために、クエリを作るためのマクロを組んでおくと役立ちます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?