ぴゅーもんブログ

カナダ生まれの日本育ち白イルカ(ベルーガ)のぬいぐるみぴゅーもんのブログです、ハワイにもいったよ〜(不定期のんびり更新)

MS ACCESS(へたれな)コネタ フォーム参照方法

ACCESSのVBAにおいて、レコードセットやフォームオブジェクトの参照方法には、いろいろな方法があるので、コードを書く人の癖により、後からの解析などで混乱することがあります。フォームオブジェクトの参照方法には下記の方法があります。
データベースウィンドウでフォームの名称を「フォーム1」とした場合

    Form_フォーム1
    Forms!フォーム1
    Forms.Item("フォーム1")

ちょっと別の観点からは、自フォーム内からであれば、「Me」としても記述することが出来ますね。上記の例では、1行目の「Form_xxx」と2行目3行目ではちょっと意味が違うようです。2行目3行目の表記は、あくまで、FormsコレクションのItemメソッドの記述の省略形式(!演算子によるショートカット)であるかないかの違いです。Formsコレクションの場合には、既にオープン(インスタンス化)されているフォームを対象とする野に対して、「Form_xxx」の場合は、該当フォームがオープンされていない場合は自動でオープンされます(ただし、表示はされない)。つまり、「Form_xxx」クラス名であり、ステートメントが評価されると同時に該当クラスがインスタンス化(New)されるのと同時に「Form_xxx」というグローバル変数へそのインスタンスが格納されるのですね。
ちょっとした処理を作成するのに非常に便利なACCESSですが、このような構造を説明した資料が非常に少ないため、コードが複雑になってゆきある閾値を越すととたんに難しくなるように思います。
弊社では、この辺のコーディングスタイルが確立していないので、各個人の経験に依存しているようです。