どの言語つかっててもそうなんですが、ちょっとした決まりごとって一度調べておかないとわからないですよね。Access VBAの決まりごと[ ]の付け方やドットとエクスクラメーションの使い方についてご紹介します。
Me.[商品名]とMe.商品名の違い
テキストボックスやフィールドなどのコントロールをVBAで指定する時にはme.〜と指定しますが[ ]を付けたり付けなかったりしますよね。その使い方のちがいは以下様になりますが、意味合いとしては同じです。
Me.[ 〜 ]という表現が好ましい。
Me.商品名 のように日本語のみのコントロール名の場合は[ ]を付けなくても大丈夫。
Me.[商品名2] や Me.[商品Product]のように日本語と英数字が混ざった場合は[ ]が必要。
Me.とMe[form]!の違いは?
違い
「Me.」は「Meのプロパティとして構成しているラベルコントロールのプロパティであるCaption」
「Me!」は「Meという名のFormの中にあるラベルコントロールのプロパティであるCaption」
少し分かりにくいですが!を使うとフォームの中に設置したコントロール(部品)の名前を選択するウィンドウが出てくるという違いです。もちろんドットだと自分自身のプロパティーを選択する画面が表示されるということになります。
具体例
上記の例だと、!なのでフォームのコントロール名をリストに表示させて選択が可能となっています。
実際のコーディングではこちらを使う頻度が高いですよね。
上記の例だと、サブフォームメイン側というフォーム自体のプロパティーがリストとして表示され選択が可能となっています。
標準モジュールから指定する場合
標準モジュールからだとこんな感じで他のフォームの値をセットできるよ。
Forms!パブリックテスト!txtここへセット.Value = “2”
Forms!パブリックテスト!txtここへセット = “111112”
Forms! フォーム名!コントロール名 のようにForms!を先頭につければOKです。
コメント