*

Access VBA データベース作成8 コンボボックスの選択データを表示 編集フォームの作成1

公開日: : 最終更新日:2014/04/20 データベース作成

データベース作成8 編集フォームの作成1

実践データベース作成の第8回目は編集フォームの作成Part1です。
「T_社員マスタ2013」に登録されたデータから編集したいデータを検索し、データ内容を書き換えるフォームを作成します。前回までに作成した「検索フォーム」に編集ボタンを追加したスタイルになります。

sakusei22

スポンサーリンク

編集フォームからの変更点は以下になります。
詳細データ表示の「性別」と「所属部署」をそれぞれテキストボックスからコンボボックスへ変更。それに伴い、各コンボボックスの隣にコンボボックスで選択されたデータの内容を表示するテキストボックスを配置しました。
例:性別コードで「0」を選択すると隣のテキストボックスに「男性」と表示される。
本来は今までのフォーム作成でも配置しておくべきであったものですが、うっかり忘れておりました・・・・。
そして、詳細データの内容を編集した後テーブルにデータを反映させる為に「編集コマンドボタン」のクリック時イベントにテーブル内容を編集するプログラムを組み込みます。
詳細データの内容から編集したい項目を直接変更し、テーブルデータを書き換えます。
また、いつものことですが追加したコンボボックスとテキストボックスは「非連結」にしておきます。

では、実際にVBAを組み込んでいきましょう。
今回は「編集フォーム」から追加されたプログラムを説明します。

・フォームの「読み込み時」イベント
編集用のコンボボックスが2つ追加されたので、このコンボボックスを作成します。
・コンボボックスの内容を表示するテキストボックス
検索結果リストの「クリック時」及び各コンボボックスの「更新後処理」にプログラムを記述します。
実際のプログラムは以下のようになります。

フォームの読み込み時のプログラム

Private Sub Form_Load()

Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim RS1 As ADODB.Recordset
Dim RS2 As ADODB.Recordset
Dim RS3 As ADODB.Recordset

Set CN = CurrentProject.Connection

‘編集用性別コンボボックスの作成
Set RS2 = New ADODB.Recordset

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

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

Do Until RS2.EOF

Me.詳細性別コード.RowSource = Me.詳細性別コード.RowSource & “;” & RS2!性別コード & “;” & RS2!性別

RS2.MoveNext
Loop

RS2.Close: Set RS2 = Nothing

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

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

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

Do Until RS3.EOF

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

RS3.MoveNext
Loop

RS3.Close: Set RS3 = Nothing
CN.Close: Set CN = Nothing

End Sub

プログラムの説明

「検索フォーム」作成時と同じプログラムです。
同じコンボボックスを新たに追加しただけのプログラムです。

検索結果リストの「クリック時」イベント

クリック時イベントに以下のプログラムを追加します。
SQL実行後の検索結果データをテキストボックスに表示するプログラムの下部に記述すれば動くはずです。

検索結果リストの「クリック時」のプログラム

Me.性別 = Me.詳細性別コード.Column(1)
Me.所属部署 = Me.詳細所属部署コード.Column(1)

また、「検索フォーム」では「性別」と「所属部署」を表示するようなプログラムにしていましたが今回は各コードを表示するようにプログラムを書き換えます。

Me.詳細性別コード = RS!性別コード
Me.詳細所属部署コード = RS!所属部署コード

プログラムの説明(Me.性別 = Me.詳細性別コード.Column(1))

各コンボボックスの2列目のデータをテキストボックスへ表示

コンボボックスの「更新後処理」

コンボボックスの更新後処理に検索結果リストのクリック時イベントと同じプログラムを記述するだけです。

 

sakusei22

ここまでいかがでしょうか?
今回は特に難しい処理はありません。前回で完成した「検索フォーム」少しだけプログラムを追加しただけです。
次回は編集(更新)プログラムを説明をしていきます。

スポンサーリンク

ad-pc

ad-pc

関連記事

sakusei24

Access VBA データベース作成9 データの更新 編集フォームの作成2

データベース作成9 編集フォームの作成2 実践データベース作成の第9回目は編集フォームの作成Par

記事を読む

sakusei11

Access VBA データベース作成2 テーブルの作成

データベース作成2 テーブルの作成 実践データベース作成の第2回目はテーブルの作成を行います。

記事を読む

sakusei20

Access VBA データベース作成7 リストボックスの値取得 検索フォームの作成3

データベース作成7 検索フォームの作成3 実践データベース作成の第7回目は検索フォームの作成Par

記事を読む

sakusei18

Access VBA データベース作成6 SQLでLike演算子 検索フォームの作成2

データベース作成6 検索フォームの作成2 実践データベース作成の第6回目は検索フォームの作成Par

記事を読む

sakusei17

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

データベース作成5 検索フォームの作成1 実践データベース作成の第5回目は検索フォームの作成Par

記事を読む

sakusei15

Access VBA データベース作成4 新規レコード追加 登録フォームの作成2

データベース作成4 登録フォームの作成2 実践データベース作成の第4回目は登録フォームの作成Par

記事を読む

sakusei02

Access VBA データベース作成1 ADO参照設定

データベース作成1 準備 データベース作成の実践編として数回に渡り、AccessVBAを使用したデ

記事を読む

sakusei27

Access VBA データベース作成10 フォームを開く メインフォームの作成

データベース作成10 メインフォームの作成 実践データベース作成の第10回目はメインフォームの作成

記事を読む

sakusei12

Access VBA データベース作成3 新規レコード取得 登録フォームの作成1

データベース作成3 登録フォームの作成1 実践データベース作成の第3回目は登録フォームの作成を行い

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職01
初心者がAccess VBAの仕事に就く為には

初心者がAccess VBAを使った仕事に就く 私はSEやITエンジ

sound01
Access VBA 音を鳴らす PlaySound

音を鳴らす PlaySound Access上で効果音を鳴らすプログ

pass01
Access VBA フォームをパスワードで制限

フォームをパスワードで制限 Accessで作成したデータベース使用時

prg01
Access VBA 処理の進行状況を表示するプログレスバー(ProgressBar)

処理の進行状況を表示するプログレスバー Accessで処理に時間のか

excel03
Access VBA AccessのデータをExcel(エクセル)へ変換

AccessのデータをExcel(エクセル)へ変換 Accessで使

→もっと見る

PAGE TOP ↑