Lesson8 で使用したフォームにボタンを一つ加えます。このボタンを押したとき、フォームに入力した内容にレコードを更新します。
ボタンの名前は、btn_更新 とします。
クリック時のイベントプロシージャへ、以下のとおりコードを記述してください。
使用される際は、そちらの環境で十分テストのうえ使用してください。
Private Sub btn_更新_Click() Set db = CurrentDb strSQL = "update 基本情報 set 氏名='" & Me.txt_氏名 & "',シメイ='" & Me.txt_シメイ & "',生年月日=#" & Me.txt_生年月日 & "# " & _ "where ID=" & Me.txt_ID db.Execute strSQL End Sub
記述が完了したら一度上書き保存して、フォームビューに切り替えてください。
txt_IDに 1 、
txt_氏名に てすと 次郎、
txt_シメイに テスト ジロウ、
生年月日に 2014/8/13
を入力して、更新ボタンを押下してください。
では、テーブルを見てみましょう。
なんと!フォームに入力したデータへ更新されていますね。レコードの更新ができました。
ちなみに、更新前のレコードはこちらです。
解説です
strSQL = "update 基本情報 set 氏名='" & Me.txt_氏名 & "',シメイ='" & Me.txt_シメイ & "',生年月日=#" & Me.txt_生年月日 & "# " & _ "where ID=" & Me.txt_ID 追加のときと同様、変数 strSQL に SQL文を組み立てて代入しています。 ここでは、レコードの更新を行うので、更新クエリに相当するSQL文を組み立てています。 update■[レコードを更新するテーブル名]■set■[データを更新するするフィールド名1]=[フィールド名1に入力するデータ],[データを更新するするフィールド名2]=[フィールド名2に入力するデータ],…[データを更新するするフィールド名n]=[フィールド名nに入力するデータ]■where■[更新する範囲指定] ■は半角スペースを表しています。
この例では変数 strSQL に代入された値は、
update 基本情報 set 氏名=’てすと 次郎’,シメイ=’テスト ジロウ’,生年月日=#2014/08/13# where ID=1
となります。
最後に、レコード追加のときと同様に、組み立てたSQL文をデーターベースに対して実行します。これで、指定したテーブルのレコードが更新されます。
db.Execute strSQL →指定したデーターベースに対して、変数 strSQL に代入したSQL文を実行せよ、という命令です。
では、次回はテーブルにあるレコードに対し、削除クエリを実行してレコードを削除してみましょう。
Lesson8 と lesson9 でフォーム:入力画面 に入力したコードは以下のとおりです。うまく動作しないときはよく見比べてみてください。
Option Compare Database Option Explicit Dim db As DAO.Database Dim strSQL As String
Private Sub btn_追加_Click() Set db = CurrentDb strSQL = "insert into 基本情報 (ID,氏名,シメイ,生年月日) " & _ "values(" & Me.txt_ID & ",'" & Me.txt_氏名 & "','" & Me.txt_シメイ & "',#" & Me.txt_生年月日 & "#) " db.Execute strSQL End Sub
Private Sub btn_更新_Click() Set db = CurrentDb strSQL = "update 基本情報 set 氏名='" & Me.txt_氏名 & "',シメイ='" & Me.txt_シメイ & "',生年月日=#" & Me.txt_生年月日 & "# " & _ "where ID=" & Me.txt_ID db.Execute strSQL End Sub
コメントをどうぞ!