OleDbDataAdapter.Fillメソッド
OleDbDataAdapterオブジェクトのFillメソッドを使って、Accessの表(MDBファイル)から取得したレコードの指定列をListBoxに表示し、選択した項目のコードを取得するプログラムを作成します。
SqlDataAdapter.Fillで特定列をListBoxに表示するサンプルはこちら
VB Express [MDB版] サンプルプログラム
- フォームにリストボックスとラベルを貼り付け
- OleDataAdapter.Fillでレコード取得
- ListBoxのDatasourceプロパティでデータバインド
- リストボックスに部署マスター表の部署名称を表示
- 選択した部署名の部署コードをLabel2に表示
- 初期表示時は未選択状態
- 接続文字列は、アプリケーション構成ファイル(app.config)から取得
Key | 列名 | データ型 | NULLを許容 |
---|---|---|---|
● | 部署コード | nchar(4) | しない |
部署名称 | nvarchar(20) | しない |
Option Strict On Imports System.Data.OleDb Public Class Form1 '*********************************************************** ' リストボックスの選択項目が変更された時の処理 '*********************************************************** Private Sub ListBox1_SelectedIndexChanged( _ ByVal sender As Object, ByVal e As System.EventArgs _ ) Handles ListBox1.SelectedIndexChanged ' 選択項目が変更されたら、部署コードをラベルに表示 If ListBox1.SelectedIndex >= 0 Then Label2.Text = ListBox1.SelectedValue.ToString End If End Sub '*********************************************************** ' フォームロード処理 '*********************************************************** Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Try Using con As New OleDbConnection Using cmd As New OleDbCommand ' 接続文字列の設定(MDB) con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Application.StartupPath & _ "\販売管理データベース.mdb" ' OleDbCommand.Connectionプロパティの設定 cmd.Connection = con ' SQL文の設定 cmd.CommandText = _ "SELECT 部署コード, 部署名称 " & _ "FROM 部署マスター表 ORDER BY 部署コード" ' 部署マスター表からレコード取得 Dim dt As New DataTable Using da As New OleDbDataAdapter da.SelectCommand = cmd da.Fill(dt) ' ListBox1にバインド Me.ListBox1.DataSource =dt End Using ' リストボックスに表示する列の設定 ListBox1.DisplayMember = "部署名称" ' 選択した項目のコードを ' 取得するための設定 ListBox1.ValueMember = "部署コード" ' 項目を未選択状態に設定 ListBox1.SelectedIndex = -1 Label2.Text = Nothing End Using End Using Catch ex As Exception ' 例外が発生した時の処理 MessageBox.Show(ex.ToString) End Try End Sub End Class