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

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

 

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

 

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

 

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

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

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

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

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

 

Access2003のMDBのVBAのパスワード保護を忘れてしまった場合のメモ

いまさら、Access2003という気がしますが、MDBのVBAのパスワードがわからなくて開くのに苦労しましたので作業メモを残しておきます。

 

1.パスワードが分からなくなったMDBのファイルを最適化する

2.新規でMDBを作成し、VBAにパスワードを設定する。

3.バイナリエディタで「DPB=」の文字列を検索して、「1」のMDBの内容に「2」のMDBの内容に書き換える。

ただし、文字数が同じでないといけないで同じになるように頑張って作成する

4.「1」を「2」で設定したパスワードで開けるか試してみる。

 

ってな具合でAccessが開けるようになりました。