データベース作成

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

データベース作成4 登録フォームの作成2

実践データベース作成の第4回目は登録フォームの作成Part2です。
前回はフォームの読み込み時のイベントを作成しましたので、今回はテーブルへ新規レコードを追加するプログラムを作成します。
・未入力データのチェック
・テーブルへの追加
上記のような流れになります。

では、実際にVBAをどのように組み込んでいくのか説明します。

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

コマンドボタンのイベントは「クリック時」になります。

sakusei12

sakusei14
コマンドボタンの「クリック時」には以下のプログラムを実行します。
1.各テキストボックス、コンボボックスが未入力(Null値)ではないか確認
2.「T_社員マスタ2013」を開き、新規レコードを追加
実際のプログラムは以下のようになります。

プログラムの例

Private Sub 登録コマンドボタン_Click()

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

‘未入力エラー処理

If IsNull(Me.新規社員コード) = True Then
MsgBox “社員コードが入力されていません!”, vbCritical, “未入力エラー”
Me.新規社員コード.SetFocus
Exit Sub
End If

If IsNull(Me.新規名前) = True Then
MsgBox “名前が入力されていません!”, vbCritical, “未入力エラー”
Me.新規名前.SetFocus
Exit Sub
End If

If IsNull(Me.新規性別コード) = True Then
MsgBox “性別が入力されていません!”, vbCritical, “未入力エラー”
Me.新規性別コード.SetFocus
Exit Sub
End If

If IsNull(Me.新規所属部署コード) = True Then
MsgBox “所属部署が入力されていません!”, vbCritical, “未入力エラー”
Me.新規所属部署コード.SetFocus
Exit Sub
End If

If IsNull(Me.新規入社年月日) = True Then
MsgBox “入社年月日が入力されていません!”, vbCritical, “未入力エラー”
Me.新規入社年月日.SetFocus
Exit Sub
End If

‘登録処理

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

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

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

RS.AddNew

RS!社員コード = Me.新規社員コード
RS!名前 = Me.新規名前
RS!性別コード = Me.新規性別コード
RS!所属部署コード = Me.新規所属部署コード
RS!入社年月日 = Me.新規入社年月日
RS!更新日 = Me.新規入社年月日

RS.Update

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

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

Me.新規社員コード = Null
Me.新規名前 = Null
Me.新規性別コード = Null
Me.新規所属部署コード = Null
Me.新規入社年月日 = Null

‘フォーム再読み込み
Call Form_Load

End If

End Sub

プログラムの説明

未入力エラー処理

各テキストボックス、コンボボックスが未入力(Null値)の場合、警告メッセージを表示し、プログラムをその時点で終了させます。
未入力エラー処理の詳細はこちらを参照して下さい。

sakusei16

登録処理

(1)Yes/No型のメッセージボックスを表示し、Yesが選択された場合のみ登録処理を実行します。

sakusei15

(2)ADOを使用して「T_社員マスタ2013」を開きます。
(3)【Add.New】で新規入力データを「T_社員マスタ2013」に追加します。
(4)登録が完了したメッセージを表示します。
(5)【Me.新規社員コード = Null】各テキストボックス、コンボボックスの値を空にします。
(6)【Call Form_Load】フォームの再読み込みを行います。
フォームの再読み込みを行うことで新たに新規社員コードを取得し直します。

いかがでしょうか?
これでコマンドボタンのクリック時イベントは終了です。
また、登録フォームの作成もこれにて完了になります。
次回からは社員検索フォームの作成に移ります。

You Tubeにて登録フォームの動画を公開しました。
画像だけですとイメージしにくい方は参考にして下さい。

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