*

Access VBA リストボックス内の値をテーブルへ追加

公開日: : 最終更新日:2014/04/20 フォーム内操作

リストボックス内の値をテーブルへ追加

フォーム内に設置したリストボックス内のデータをテーブルへ追加するプログラムを説明します。前記事(リストボックスに値を追加)の続きになります。

listbox04
リストボックス内の全データをテーブルへ新規レコードとして追加します。
・登録コマンドを押す
・リスト内のデータをカウント
・データをテーブルへ追加
では、実際にVBAをどのように組み込んでいくのか説明します。

スポンサーリンク

コマンドボタン(登録)のクリックイベント

コマンドボタンのイベントは「クリック時」になります。
コマンドボタンを押した際にリスト内のデータを順に読み込み、テーブルへ新規レコードとして追加していきます。
実際のプログラムは以下のようになります。

リストボックス内のデータをテーブルへ追加するプログラム例

Private Sub 登録コマンド_Click()

Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim I As Integer

If MsgBox(“登録を行います。よろしいですか?”, vbQuestion + vbYesNo, “登録の確認”) = vbYes Then

Set CN = CurrentProject.Connection
Set RS = New ADODB.Recordset

RS.Open “T_社員マスタ2013”, CN, adOpenStatic, adLockOptimistic

For I = 1 To 入力リスト.ListCount – 1

RS.AddNew

RS!社員コード = 入力リスト.Column(0, I)
RS!名前 = 入力リスト.Column(1, I)
RS!性別コード = 入力リスト.Column(2, I)
RS!所属部署コード = 入力リスト.Column(4, I)
RS!入社年月日 = 入力リスト.Column(6, I)
RS!更新日 = 入力リスト.Column(6, I)

RS.Update

Next I

RS.Close: Set RS = Nothing
CN.Close: Set CN = Nothing

MsgBox “登録が完了しました。”, vbInformation, “登録完了”

End If

End Sub

プログラムの説明

・【For I = 1 To 入力リスト.ListCount – 1】
For Next文を使用し、リストボックス内のデータ数(ListCount)からマイナス1を行った数で繰り返し処理をします。(変数Iをリストの行数とする)
リストボックスの行と列のカウントは「0」(ゼロ)から始まります。一番上の0行目はリストボックスの「見出し行」ですので、テーブルへは入力させません。リストボックスのデータ数をカウントしマイナス1を行う理由は「見出し行」を除く為です。また、「見出し行」をテーブルへ入力させない為に「I = 1」としています。(0行目は見出し行の為)

・【RS!社員コード = 入力リスト.Column(0, I)】
リストボックスの値を取得するには「Column」を使用します。
Column(列,行)ですので、上記画像の一番上の社員コードを取得するには「Column(0, 1)」になります。列は追加したいテーブルのフィールドと同様なので、各フィールドに合った列数を指定します。行はFor Next文で繰り返し処理を実施しますので変数の「I」を記述しています。

listbox05
テーブル内に新規レコードが追加されていれば完成です。

スポンサーリンク

ad-pc

ad-pc

関連記事

merror01

Access VBA フォーム 未入力エラー回避

フォーム 未入力エラー回避 データ入力フォームなどで、データの未入力エラーを回避するプログラム例で

記事を読む

pass01

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

フォームをパスワードで制限 Accessで作成したデータベース使用時に一般ユーザーと管理者レベルで

記事を読む

listbox03

Access VBA リストボックスに値を追加

リストボックスに値を追加 フォーム内に設置した非連結のリストボックス内に値(データ)を追加するプロ

記事を読む

listbox02

Access VBA フォーム リストボックスの作成

フォーム リストボックスの作成 フォーム内にリストボックス「リスト0」(非連結)を作成しておきます

記事を読む

cbox02

Access VBA フォーム コンボボックスの作成

フォーム コンボボックスの作成 フォーム内にコンボボックス「コンボ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 ↑