アクセスVBAでレコードの削除をやってみよう

アクセス担当のまみです。

データを入力していると、間違って登録してしまうこともあるので、検索機能や修正機能が必要になってきます。

今回は、検索して呼び出したデータの削除をやってみましょう!

データの登録、検索、更新、削除ができれば、データの扱いは思いのままですね。

 

ファイルを準備しよう

 

今回の「レコードの削除」をかんたんに説明するために「宛名印刷」ファイルを使用します。

今つまづいてる悩みを解決する方法をわかりやすくお伝えするための「宛名印刷」ファイルです。ついでにシリーズを読破するとはがきの宛名印刷ができるようになっちゃいます。

プログラム作成の基本となる「フォームの作成」、「データの登録」、「データの検索」、「データの修正」、「レコードの削除」を「宛名印刷」ファイルを作成しながら、お伝えしています。

お時間がありましたら是非、下記の記事から作成してみてください。

 

アクセスVBAでフォームにボタンを配置しよう

2018年9月18日
 
 

レコードの削除

 

さっそくレコードの削除をやってみましょう。

「宛名印刷」ファイルの「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_データ検索」画面から修正したいデータを選んで、そのデータを削除してくださいねってコードなんですが、データを登録した時と違って、全部のフィールド名を書かなくても削除されます。

(はてな君)
Rst.Deleteのみの記載で1つのレコードが消えるってこと?
 
 
(あいちゃん)
そう!削除って簡単でしょ!
 

さっそく動作確認してみましょう!

 

(はてな君)
テーブルのデータを見たら、データが削除されたのがわかるけど、データがフォームにそのまま残ってるけど?

 

[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

 

 

(はてな君)
書き忘れたことあるよ!End IFがありませんとかってメッセージが出た!

 

④削除されたらメインメニューへ戻るように、下記のコードを追加しましょう。

    MsgBox "削除されました"
    DoCmd.OpenForm "F_メインメニュー"
    DoCmd.Close acForm, Me.Name

 

(あいちゃん)
動作確認をたくさんしてみてくださいね!

 

「F_修正」フォームは保存して終了しておきましょう!

 

まとめ

 

フォームからデータの削除ができるようになりました。

あとは、修正ができるようになればデータの編集はバッチリですね!

 

スポンサーリンク