Home > 即効テクニック > AccessVBA > フォーム・レポート > コンボボックスを使用する 2

即効テクニック

フォーム・レポート

コンボボックスを使用する 2

(Access 2000/2002/2003)
● 概要 ●
コンボボックスでは、LimitToListプロパティを設定することによって、リストにない値を入力できるかどうか制御できます。Trueに設定した場合、入力可、逆に、Falseに設定した場合、入力不可となります。
次のコードは、フォームを読み込むときに、3つのコンボボックスのLimitToListプロパティを設定するものです。


● サンプル1 ●
Private Sub Form_Load()
     '入力チェックを行わない
    コンボ1.LimitToList = False
     '入力チェックを行う
    コンボ2.LimitToList = True
     '入力チェックを行わない
    コンボ3.LimitToList = False
End Sub

コンボ1とコンボ3には、リストにない値を入力できますが、コンボ2にリストにない値を入力して確定しようとすると、エラーメッセージが表示されます。


● サンプル2 ●
DropDownメソッドを使用すると、コンボボックスをドロップダウン表示します。
コンボボックスのEnterイベントプロシージャでDropDownメソッドを使用すれば、[Tab]キーを押すなどしてフォーカスがコンボボックスに移動したときに、自動的にドロップダウン表示させることができます。

Private Sub コンボ2_Enter()
     '自動的にドロップダウン表示する
    コンボ2.Dropdown
End Sub


● サンプル3 ●
コンボボックスに入力された値は、TextプロパティかValueプロパティで取得します。
Textプロパティは、現在の入力値を示します。Valueプロパティは、保存されている値を示します。
コンボボックスに入力中は、TextプロパティとValueプロパティの値が異なることもあり得ます。
次のコードは、コンボ3のChangeイベントプロシージャで、TextプロパティとValueプロパティの値を取得するものです。
なお、Textプロパティは、コントロールにフォーカスがあるとき取得できます。

Private Sub コンボ3_Change()
    MsgBox "Text : " & コンボ3.Text & vbCr & _
           "Value: " & コンボ3.Value
End Sub