アクセス担当のまみです。
データを入力していると、入力ミスってやっぱりあるんです・・・
入力したかどうかもわからなくなる時もあったりして。
そうすると、データが登録できるだけじゃなくて、削除や修正ができる機能があると助かりますね。
今回は、データの修正をできるようにしてみましょう!
Contents
レコードの削除とよく似たコード
レコードの削除の方法と、データの修正の方法はコードがよく似ています。レコードの削除方法を、下記の記事で確認してみてくださいね。
今回、「データの修正」の説明のために「宛名印刷」ファイルを使用します。
プログラム作成の基本となる「フォームの作成」、「データの登録」、「データの検索」、「データの修正」、「レコードの削除」を「宛名印刷」ファイルを作成しながら、お伝えしています。
シリーズを読破すると、ついでにはがきの宛名印刷ができるようになっちゃいます。
お時間がありましたら是非、下記の記事から作成してみてください。
データの修正
では、データの修正ができるようにしていきましょう!
「F_修正」フォームをデザインビューで開き、「btn修正」のクリック時にコードを書いていきましょう!
①「btn修正」ボタンを選択した状態で、プロパティーシートの②「イベント」タブを左クリックします。
「クリック時」を「イベントプロシージャ」にしてコードを開きましょう。
「Private Sub btn修正_Click()」と「End Sub」の間に下記のコードを追加しましょう。
Dim db As DAO.Database Dim Rst As DAO.Recordset Dim strData As String Dim strSQL As String Dim nRet As Long Set db = CurrentDb strData = CStr(Me.OpenArgs) strSQL = "select * from T_住所録 where 登録NO=" & strData Set Rst = db.OpenRecordset(strSQL) If Rst.RecordCount = 1 Then nRet = MsgBox("修正してよろしいですか?", vbYesNo) If nRet = vbNo Then Exit Sub Else With Rst .Edit Rst!しめい = Me.txしめい.Value Rst!氏名 = Me.tx氏名.Value Rst!郵便番号 = Me.tx郵便番号.Value Rst!住所1 = Me.tx住所1.Value Rst!住所2 = Me.tx住所2.Value Rst!電話 = Me.tx電話番号.Value Rst!印刷要否 = Me.cmb印刷要否.Value Rst!備考 = Me.tx備考.Value Rst!修正日付 = Now .Update End With End If End If Rst.Close MsgBox "修正されました" DoCmd.OpenForm "F_メインメニュー" DoCmd.Close acForm, Me.Name
コードをコピーされたい場合は下記の記事を参考にしてください。
とってもよく似ているので、セットで覚えられそうですね。
しっかり動作確認をしておきましょう!
それから、「tx登録NO」はそのままでもいいですが、非表示にしておきましょう。
テキストボックスを非表示にする
「F_修正」をデザインビューで開きましょう。
①「tx登録NO」を選択した状態で、プロパティーシートの②「書式」タブを左クリックし、「可視」を「いいえ」にしておきましょう。
「F_修正」をフォームビューに切り替えてみましょう。
使わないテキストボックスがあるのが気持ち悪いってことでしたら、「tx登録NO」は削除しましょう。
その際には、コードの該当部分「Form_Load()」の「Me.tx登録NO.Value = Rst!登録NO」も忘れずに削除しておきましょう。
忘れていても、エラーでお知らせしてくれるので大丈夫!
まとめ
「F_修正」フォームでデータの削除、修正ができるとデータの管理がやりやすくなりますね。
バグが多いのはこのあたりの動きです。
動作確認をしっかりしておきましょう。