Accessのクエリで別名を指定したら「循環参照」を発生させていますと表示される件

Accessのクエリで同じフィールド名を演算フィールド名を参照していると「クエリ定義のSELECTで指定されている別名XXXXが循環参照を発生させています。」と表示されます。

 

なんのこっちゃいって思ったんだけど、Accessではフィールド名と別名で設定した名前が同じになってはいけないとのこと。

 

例えば、あるフィールド名をSELECTの結果で、「数字型」→「文字列型」に変換して同じ内容で形外なので同じ名前でいいや!って思っておもそのような名前を付けれられない。

 

無理やり既存コードをなるべく改良しないでどうにかしようとしたときにちょっとめんどい。

まあ、あんまりきれいにできないのが無理くりな改良なのでそんなときは

SELECT 出力するフィールド名 from (元のクエリ)

↓例とするとこんな感じ
SELECT mo as moji from ( SELECT  val(moji) as  mo from XXXXX )

こんな感じでいきますかな・・・。あとは、Access側でクエリを自動で書き直しされるのでまあ、そんなところ。