[Access 2016/2013/2010/2007]
クエリの演算フィールドに、式の中で使用しているフィールドと同じ名前を付けたいと思ったことはないでしょうか。
図1を見てください。演算フィールドでUCase関数を使用して、[Lastname]フィールドの文字列を大文字に変換しています。「Lastname: UCase([Lastname])」のように、演算フィールドにもとのフィールド名と同じ「Lastname」という名前を付けてクエリを実行すると、「クエリ定義のSELECTで指定されている別名 'Lastname' が循環参照を発生させています。」というエラーメッセージが表示されます。
このエラーは、演算フィールドに「Lastname大文字」「Lastname2」など、もとのフィールドと異なる名前を付ければ解決します。しかし、「いい別名が思い付かない」「もとの名前のほうがしっくりくる」なんていうケースも少なくないでしょう。そこで、ここではもとのフィールド名と同じ名前を付ける2通りの方法を紹介します。
見掛け上のフィールド名を変更する方法 …[標題]プロパティを利用
見掛け上「Lastname」と表示すればいいだけなら、[標題]プロパティを使う手があります。「Lastname2」などと別名を付けて、フィールドを選択し、[F4]キーを押します。プロパティシートが表示されるので、[標題]プロパティに「Lastname」と入力します(図2)。
図3は上のクエリの実行結果です。フィールド名として「Lastname2」ではなく「Lastname」が表示されます。このクエリを基にフォームやレポートを作成すると、[Lastname2]テキストボックスの付属ラベルにも「Lastname」と表示されます。
なお、実際のフィールド名は「Lastname2」なので、別のクエリでこのフィールドを演算に使用するときは、「Name: [Firstname] & " " & [Lastname2]」のように「Lastname2」を使用しましょう。
実際のフィールド名を変更する方法 …テーブル名を明記
演算フィールドの実際のフィールド名を「Lastname」にしたい場合は、式の中のフィールド名の前にテーブル名を付加しましょう(図4)。
図4ののクエリを実行すると、図5のようになります。
実際のフィールド名が「Lastname」になるので、別のクエリでこのフィールドを演算に使用するときは、「Name: [Firstname] & " " & [Lastname]」のように「Lastname」を使います。