Accessのクエリを使うと、通常はフィールド名がそのまま表示されますが、別名を付けることができます。「別名: フィールド名」のようにコロンを使います。
しかし、別名を元のテーブルのフィールド名と同じにしようとすると次のようなエラーが出ます。
クエリ定義のSELECTで指定されている別名’xxxxx’が循環参照を発生させています。
別の名前にすればいいのですが、どうしても同じにしたい場合はどうすればいいでしょうか。
次のようなテーブル「yourtable」があったとします。
id | name | height |
1 | First Smith | 175.1 |
2 | Second Smith | 176.2 |
「クエリを使ってheightを四捨五入したい。フィールド名はheightにしたい。」というような場合を考えます。
「height: Round([height])」とすると「クエリ定義のSELECTで指定されている別名’height’が循環参照を発生させています。」とメッセージが出ます。
フィールド名の「height」と別名の「height」が重複しているということです。
この場合はフィールド名にテーブル名を付加します。
「height: Round([yourtable].[height])」のようにします。
実行すると次のようになります。
id | name | height |
1 | First Smith | 175 |
2 | Second Smith | 176 |
値は四捨五入されています。一方、フィールド名は別名の「height」になっています。
SQLだと次のようになります。
SELECT yourtable.id, yourtable.name, Round([yourtable].[height]) AS height
FROM yourtable;
FROM yourtable;
コメント