アクセス担当のまみです。
データを入力していると、間違って登録してしまうこともあるので、検索機能や修正機能が必要になってきます。
今回は、検索して呼び出したデータの削除をやってみましょう!
データの登録、検索、更新、削除ができれば、データの扱いは思いのままですね。
ファイルを準備しよう
今回の「レコードの削除」をかんたんに説明するために「宛名印刷」ファイルを使用します。
今つまづいてる悩みを解決する方法をわかりやすくお伝えするための「宛名印刷」ファイルです。ついでにシリーズを読破するとはがきの宛名印刷ができるようになっちゃいます。
プログラム作成の基本となる「フォームの作成」、「データの登録」、「データの検索」、「データの修正」、「レコードの削除」を「宛名印刷」ファイルを作成しながら、お伝えしています。
お時間がありましたら是非、下記の記事から作成してみてください。
レコードの削除
さっそくレコードの削除をやってみましょう。
「宛名印刷」ファイルの「F_修正」フォームをデザインビューで開きましょう。
①「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 Set db = CurrentDb strData = CStr(Me.OpenArgs) strSQL = "select * from T_住所録 where 登録NO=" & strData Set Rst = db.OpenRecordset(strSQL) If Rst.RecordCount = 1 Then With Rst .Edit Rst.Delete End With End If Rst.Close
コードをコピーされたい場合は下記の記事を参考にしてください。
「F_データ検索」画面から修正したいデータを選んで、そのデータを削除してくださいねってコードなんですが、データを登録した時と違って、全部のフィールド名を書かなくても削除されます。
さっそく動作確認してみましょう!
[quads id=2]
「F_修正」フォームでは、データの検索を行わないので、メインメニューへ戻るようにしましょう。
それから、「btn削除」を押すと、間違って押してしまった場合でも、取り消しが効かないので、メッセージボックスで削除するかどうか選択できるようにしましょう。
①まずは、下記のコードを追加して、変数を宣言しましょう。
Dim nRet As Long
ちなみに、変数を宣言する場所は、使用する直前でOKです。
先頭に宣言する派と使用する直前派とあるようです。最近は、使用する直前の方が主流のようです。
今回は、コードが短いので先頭にまとめました。
②メッセージボックスを表示して、削除する時としない時を選べるように、下記のコードを追加しましょう。
nRet = MsgBox("削除してよろしいですか?", vbYesNo) If nRet = vbNo Then Exit Sub Else
③忘れずに「End IF」を追加しておきましょう。
MsgBox "削除されました" DoCmd.OpenForm "F_メインメニュー" DoCmd.Close acForm, Me.Name
④削除されたらメインメニューへ戻るように、下記のコードを追加しましょう。
MsgBox "削除されました" DoCmd.OpenForm "F_メインメニュー" DoCmd.Close acForm, Me.Name
「F_修正」フォームは保存して終了しておきましょう!
まとめ
フォームからデータの削除ができるようになりました。
あとは、修正ができるようになればデータの編集はバッチリですね!