アクセス担当のまみです。
フォームに入力したデータをテーブルに登録できたらテーブルを直接さわらないですみますね。
テーブルを直接さわると、元に戻せないので即書き換わってちょっと怖いんです・・・
今回はフォームからテーブルへのデータ登録ができるようにしてみましょう!
フォームにボタンを設置
説明のために「宛名印刷」ファイルを使用します。
「宛名印刷」ファイルの作成方法がわからない方のために、「宛名印刷」ファイルの「T_住所録」テーブルの構造を記しておきますね。
フィールド名 | データ型 |
登録NO | オートナンバー型 |
氏名 | 短いテキスト |
しめい | 短いテキスト |
郵便番号 | 短いテキスト |
住所1 | 短いテキスト |
住所2 | 短いテキスト |
電話 | 短いテキスト |
印刷要否 | 短いテキスト |
備考 | 短いテキスト |
それ以降フォームの作成方法は、下記の記事から読んでもらえると「宛名印刷」ファイルが作成できます。年賀状の宛名印刷ができるようになるプログラムです。ぜひ作成してみてくださいね!
名前 | brnクリア |
標題 | クリア |
登録ボタンのプロパティシート
名前 | brn登録 |
標題 | 登録 |
2つのボタンの設定が終わったら、「btn登録」をクリック時の処理方法を設定していきましょう。
データ登録のコード
①「btn登録」ボタンを選択状態にして、プロパティーシートの②「イベント」タブを左クリックします。
③「クリック時」のを左クリックして、「イベントプロシージャ」を選んで、を左クリックします。
「Private Sub btn登録_Click()」と「End Sub」の間に、「btn登録」ボタンをクリックしたときの処理を入力していきます。
「btu登録」がクリックされたら、デーブルにレコードを追加してくれるようにってことですね。
下記のコードを入力します。
Dim Rst As DAO.Recordset Set Rst = CurrentDb.OpenRecordset("T_住所録", dbOpenTable) With Rst .AddNew .Fields("しめい") = Me!txしめい .Fields("氏名") = Me!tx氏名 .Fields("郵便番号") = Me!tx郵便番号 .Fields("住所1") = Me!tx住所1 .Fields("住所2") = Me!tx住所2 .Fields("電話") = Me!tx電話番号 .Fields("印刷要否") = Me!cmb印刷要否 .Fields("備考") = Me!tx備考 .Update End With Rst.Close Set Rst = Nothing
Dim Rst As DAO.Recordset
Dim オブジェクト名 As クラス名
オブジェクト変数を宣言する時にDim~って書くんですが(Rstが変数です)、オブジェクト名とかクラス名とか、なんだかわからないですよね。
要するに、データベースをRstってことにしてくださいねってことです。
Set Rst = CurrentDb.OpenRecordset(“T_住所録”, dbOpenTable)
Rstに「T_住所録」テーブルの情報を入れてくださいねって意味になります。
With RstからEnd Withの間に書かれていることを、実行してくださいね。
.AddNew・・・新しいレコードを追加
.Update・・・更新
.Fields(“しめい”)・・・「T_住所録」テーブルの「しめい」フィールド
Me!txしめい・・・「F_データ入力」フォームの「txしめい」テキストボックス
データの追加が終わったら、Rst.Closeでデータベースを閉じておきます。
使った変数RstはSet Rst = Nothingで解除しておきます。
色々データ登録してみてくださいね。
コードをコピーされたい場合は下記の記事を参考にしてください。
まとめ
今回は、フォームからデータを登録するコードについてお伝えしました。