HOME > 即効テクニック > AccessVBA > フォーム・レポート > リストボックスを使用する 1

即効テクニック

フォーム・レポート

リストボックスを使用する 1

(Access 2000/2002/2003)
● 概要 ●
リストボックスは、一覧表示した項目の中からユーザーに選択させるときに使用します。

リストボックスにテーブルのデータを表示する場合、RowSourceTypeプロパティに「Table/Query」、RowSourceプロパティにテーブル名を指定します。
また、連結列はBoundColumnプロパティ、列数はColumnCountプロパティ、列幅はColumnWidthsプロパティで設定します。
次のコードは、トグルボタンの選択により、リストに表示する内容を切り替えるものです。


● サンプル1 ●

Private Sub fraData_AfterUpdate()
    With リスト
        If fraData = 1 Then
            .RowSourceType = "Table/Query"      '値集合タイプ
            .RowSource = "顧客テーブル"         '値集合ソース
            .BoundColumn = 1                    '連結列
            .ColumnCount = 2                    '列数
            .ColumnWidths = "1.5cm;5.0cm"       '列幅
        Else
            .RowSourceType = "Table/Query"      '値集合タイプ
            .RowSource = "社員テーブル"         '値集合ソース
            .BoundColumn = 1                    '連結列
            .ColumnCount = 3                    '列数
            .ColumnWidths = "1.5cm;2.5cm;2.5cm" '列幅
        End If
    End With
End Sub

リストボックスにテーブルのデータを表示する場合、RowSourceTypeプロパティに「Table/Query」、RowSourceプロパティにテーブル名を指定します。
また、連結列はBoundColumnプロパティ、列数はColumnCountプロパティ、列幅はColumnWidthsプロパティで設定します。
次のコードは、トグルボタンの選択により、リストに表示する内容を切り替えるものです。


● サンプル2 ●
Private Sub cmd取得_Click()
    With リスト
    '選択されていないときは-1
        If .ListIndex = -1 Then
            MsgBox "選択されていません"
        Else
            MsgBox "選択されている行: " & (.ListIndex + 1) & vbCr & _
                   "Valueプロパティ : " & .Value
        End If
    End With
End Sub