AccessのVBAの質問です。 ①If IsNull(Me.txb_販売日.Value) Then ・・・ ②If Not IsNull(Me(“cmb_商品ID” & i).Value) Then ・・・

AccessのVBAの質問です。 ①If IsNull(Me.txb_販売日.Value) Then ・・・ ②If Not IsNull(Me(“cmb_商品ID” & i).Value) Then ・・・ Accessの本を読んでいて、①、②のようなコードがありました。 「ISNull(」に続く文字が、①では、「Me. 」となっているのに、②では、「Me( 」となっていますが、なぜなのでしょうか? どういう違いがあるのでしょうか? 教えて下さい。

Microsoft Access | プログラミング5閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

①の方は txb_販売日 を指定しています。 ②の方は cmb_商品ID1 cmb_商品ID2 cmb_商品ID3 ・・・・ のように同じような名前のコントロールが複数ある状態で末尾の数字部分を 変数にして繰り返し処理が出来るようにしています。 ①「Me. 」の場合、.のあとはコントロール名を指定する必要があり、 iのような変数を指定できません。 ②「Me( 」の場合、()内は変数も使用可能なので iのような変数を使いたい場合、必然的に②の書き方になります。 Me.txb_販売日.Value は Me("txb_販売日").Value) とも書けますが、 Me. と.を入力した時に自動補完が働き 自動で候補が表示されそこから選択可能になり 入力が楽に出来るため変数を使用しない場合 ①の書き方をすることが多いです。

ThanksImg質問者からのお礼コメント

明快で詳細な説明、ありがとうございます。 良く分かりました。 他の方々も、教えて頂きありがとうございました。

お礼日時:9/24 23:42

その他の回答(2件)

0

①繰り返しの無い固有名称のコントロールの場合 [社員番号] [氏名] [性別] .... Me.社員番号 Me.氏名 Me.性別 ②繰り返しのある複数の名称の名称のコントロールを扱う場合 [備考1][備考2][備考3].....[備考9] For I = 1 to 9 Debug.print Me("備考" & I) Next ( )の中は "備考1" "備考2"....."備考9"となります。