データベース作成

Access VBA データベース作成5 コンボボックスの作成 検索フォームの作成1

データベース作成5 検索フォームの作成1

実践データベース作成の第5回目は検索フォームの作成Part1です。
「T_社員マスタ2013」に登録されたデータからテキストボックスやコンボボックスに入力されたデータを基に検索します。
・テキストボックスやコンボボックスを設置し検索条件を入力出来るようにする。
・検索コマンドボタンを押すと検索結果がリストボックスに表示される。
・更にリストボックス内の検索されたデータをクリックすると詳細データが表示される。
上記のような検索フォームを作成します。

フォームの作成

sakusei17
フォームの構成は・・・
・検索条件
名前・・・テキストボックス
性別・・・コンボボックス
所属部署・・・コンボボックス
・検索結果
検索結果・・・リストボックス
・詳細
社員コード・・・テキストボックス
名前・・・テキストボックス
性別・・・テキストボックス
所属部署・・・テキストボックス
入社日・・・テキストボックス
以上になります。
また、各コントロールボックスは「非連結」で作成します。

では、実際にVBAを組み込んでいきましょう。

フォームイベント

フォームのイベントは読み込み時になります。
登録フォームの作成と同様に「読み込み時」にはコンボボックスの作成を行います。
1.性別マスタを使用して「性別コンボボックス」の作成
2.所属部署マスタを使用して「所属部署コンボボックス」の作成
実際のプログラムは以下のようになります。

プログラムの例

Private Sub Form_Load()
Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim RS1 As ADODB.Recordset

Set CN = CurrentProject.Connection

‘性別コンボボックスの作成
Set RS = New ADODB.Recordset

Me.性別コード.ColumnCount = 2
Me.性別コード.ColumnWidths = “2.0cm;1.0cm”
Me.性別コード.RowSource = “コード;性別”
Me.性別コード.RowSourceType = “値リスト”

RS.Open “T_性別マスタ”, CN, adOpenStatic, adLockOptimistic

Do Until RS.EOF

Me.性別コード.RowSource = Me.性別コード.RowSource & “;” & RS!性別コード & “;” & RS!性別

RS.MoveNext
Loop

RS.Close: Set RS = Nothing

‘所属部署コンボボックスの作成
Set RS1 = New ADODB.Recordset

Me.所属部署コード.ColumnCount = 2
Me.所属部署コード.ColumnWidths = “2.0cm;1.0cm”
Me.所属部署コード.RowSource = “コード;部署”
Me.所属部署コード.RowSourceType = “値リスト”

RS1.Open “T_所属部署マスタ”, CN, adOpenStatic, adLockOptimistic

Do Until RS1.EOF

Me.所属部署コード.RowSource = Me.所属部署コード.RowSource & “;” & RS1!所属部署コード & “;” & RS1!所属部署名

RS1.MoveNext
Loop

RS1.Close: Set RS1 = Nothing
CN.Close: Set CN = Nothing

End Sub

プログラムの説明

性別コンボボックス及び所属部署コンボボックスの作成

(1)「Me.性別コード」を設定。
(2)ADOを使用して「T_性別マスタ」を開く。
(3)Do Loop処理を使用して「Me.性別コード」にデータを追加
(4)「Me.所属部署コード」も同様に作成します。
ADOの使用方法はこちらを参照して下さい。
コンボボックスの詳しい作成方法はこちらを参照して下さい。

いかがでしょうか?
これでフォームの「読み込み時イベント」は完了です。
登録フォームの作成とほぼ同様なので問題は無いと思います。
次回は検索プログラムを説明していきます。

こちらの記事もおすすめ!