Lesson9 非連結フォームからレコードを操作する【レコード更新編】

スポンサーリンク

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

コメントをどうぞ!

タイトルとURLをコピーしました