Accessで「循環参照」が発生したら

Pocket

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;

[ 2014年10月4日 | カテゴリー: Access | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報