- ベストアンサー
Access2007でのVBAを使ったプルダウンメニューの設定方法とは?
- Access2007でのVBAを使用してプルダウンメニューを設定する方法について教えてください。
- 具体的には、受付内容としてプルダウンメニューを作成し、選択に応じて他のテキストボックスの表示・非表示を切り替えたいです。
- どのようにVBAコードを組むと、入力不要なテキストボックスを制御できるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フォームの構成/操作等はどうなっているのでしょうか。 これらは連結でのことになりますか? 入会であれば新規登録?、退会であれば(修正)更新? 特に(修正)更新の場合、 いじれなくてもその情報を表示しておきたいことがある、と思います。 条件付き書式を使って、有効/無効を設定した方が楽かもしれません。 設定は、例えば「退会日」では、 条件を「式」にして、右の欄に [受付内容]<>"退会" として無効を設定します。 「受付日」「入会開始日」も同様に、じゃない時を無効にするように設定します。 フォームの構成/操作等がわからないので、こんな感じでもできるということで。 ただ、 "退会"を選んで「退会日」入力し、確定前に、続けて"再入会"に変更して・・・ ができるのなら、受付内容のクリック時や、 フォームの更新前処理でいろいろチェックしないといけないと思います。
その他の回答 (1)
- DexMachina
- ベストアンサー率73% (1287/1744)
> プルダウンメニューで選択する度に、テキストボックスを > 表示・非表示になるようにしたい 表示・非表示の切替には「Visible」プロパティ、使用可否の 切替には「Enabled」プロパティで、それぞれ対応できます。 具体的には、以下のようなコードでいけると思います。 なお、「プルダウンメニュー」というのがAccessで標準組込の 『コンボボックス』のもので、そのコンボボックスの連結値 (記録値)が、選択したテキストそのものになっている前提と しました。 (Accessのコンボボックスでは、表示列と連結列をそれぞれ 別のデータにすることができます(参考まで)) Private Sub 受付内容_AfterUpdate() '各テキストボックスの使用可否を記録するための変数 Dim visEntry As Boolean, visRsgn As Boolean, visOldID As Boolean '受付内容での選択値に合わせて、プロパティの値を設定 Select Case 受付内容 Case "入会" visEntry = True '受付日の表示/非表示 visRsgn = False '退会日の表示/非表示 visOldID = False '旧会員IDの表示/非表示 Case "再入会" visEntry = True visRsgn = False visOldID = True Case "退会" visEntry = False visRsgn = True visOldID = False End Select '上で決定した値を実際にコントロールに適用 Me!受付日.Visible = visEntry Me!退会日.Visible = visRsgn Me!旧会員ID.Visible = visOldID '表示したテキストボックスにフォーカスを移動する '場合は、以下の各行の先頭の「'」を削除して下さい。 'Select Case True ' Case visEntry ' Me!受付日.SetFocus ' Case visRsgn ' Me!退会日.SetFocus 'End Select End Sub ・・・以上です。 なお、表示/非表示よりも使用可否の方がいい、という場合は、 上記の「.Visible」を「.Enabled」に書き換えればOKです。