アクセスvbaフォームからデータを修正する方法

 

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

 

データを入力していると、入力ミスってやっぱりあるんです・・・

入力したかどうかもわからなくなる時もあったりして。

そうすると、データが登録できるだけじゃなくて、削除や修正ができる機能があると助かりますね。

 

今回は、データの修正をできるようにしてみましょう!

 

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

 

コードをコピーされたい場合は下記の記事を参考にしてください。

関連記事
 
 
 
 
 
 
 
(はてな君)
わぁホントだぁ!削除とよく似てる~!

 

 

(あいちゃん)
削除の時との違いは、項目をすべて記載することと、「.Delete」が「.Update」になったことの二つ!

 

 

とってもよく似ているので、セットで覚えられそうですね。

 

しっかり動作確認をしておきましょう!

 

それから、「tx登録NO」はそのままでもいいですが、非表示にしておきましょう。

 

テキストボックスを非表示にする

 

「F_修正」をデザインビューで開きましょう。

 

 

①「tx登録NO」を選択した状態で、プロパティーシートの②「書式」タブを左クリックし、「可視」を「いいえ」にしておきましょう。

 

「F_修正」をフォームビューに切り替えてみましょう。

 

 

 

(はてな君)
「tx登録NO」が見えなくなったよ~

 

 

使わないテキストボックスがあるのが気持ち悪いってことでしたら、「tx登録NO」は削除しましょう。

その際には、コードの該当部分「Form_Load()」の「Me.tx登録NO.Value = Rst!登録NO」も忘れずに削除しておきましょう。

忘れていても、エラーでお知らせしてくれるので大丈夫!

 

まとめ

 

「F_修正」フォームでデータの削除、修正ができるとデータの管理がやりやすくなりますね。

 

バグが多いのはこのあたりの動きです。

動作確認をしっかりしておきましょう。

 

 

スポンサーリンク