【Access VBA】Updateの使い方入門|AddNew後に必要な理由とは?

Access VBAでデータ追加や編集を学び始めると、
- Updateって何?
- AddNewとの違いは?
- なぜ保存されないの?
と悩むことが非常に多いです。
特に初心者は、rs.Updateを忘れてしまい、「データが保存されない」という状態になりがちです。
この記事では、Access VBA初心者向けにUpdateの基本をやさしく解説します。
実務でよく使う、
- AddNewとの関係
- 保存処理の流れ
- 実務でよくあるミス
も含めて実例付きで紹介します。
Access VBAのUpdateとは?
結論からいうと、Updateは、変更内容を保存するための命令です。
Access VBAでは、Recordsetへデータを入力しただけでは保存されません。
最後に、rs.Updateを実行して、初めてテーブルへ保存されます。

Updateを使う代表的な場面
実務では以下のような場面で使います。
- 新規データ追加
- 既存データ編集
- フォーム入力保存
- 顧客情報更新
特にAddNewとセットで使うことが非常に多いです。
Updateを使った基本的な保存方法
まずは基本コードを見てみましょう。
サンプルコード
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("T_社員")
rs.AddNew
rs!社員名 = "田中"
rs!部署 = "営業"
rs.Update
rs.Close
Set rs = Nothingコードの目的
テーブル「T_社員」に新しい社員データを保存しています。
1行ずつ解説
Set rs = CurrentDb.OpenRecordset("T_社員")まず上記のVBAでテーブルを開いています。
rs.AddNew次に、rs.AddNewで新規追加モードへ切り替えています。

rs!社員名 = "田中"その後、rs!社員名 = "田中"のように値をセットします。
ただ、この時点ではまだ保存されていません。
rs.Update最後に、rs.Updateを実行することで、データが保存されます。
Updateを忘れると保存されない
初心者が最もハマりやすいポイントです。
例えば、次のVBAだけでは保存されません。
rs.AddNew
rs!社員名 = "田中"必ず最後にUpdateが必要です。
なぜUpdateが必要なのか
Access VBAでは、AddNewを実行すると「編集モード」のような状態になります。
つまり、
- まだ仮入力状態
- メモリ上で編集中
- テーブルへ未保存
の状態です。
そこで、rs.Updateを実行することで、入力内容を正式保存しています。
Excelの保存ボタンに近いイメージ
初心者は、次のように考えると理解しやすいです。
- AddNew → 入力開始
- Update → 保存
EditでもUpdateを使う
Updateは新規追加だけではありません。
既存データ編集でも使います。
rs.Edit
rs!部署 = "総務"
rs.Updateこのように編集内容を保存する時にも必要です。
実務でよくあるミスと注意点
Update関連では初心者がハマりやすいポイントがあります。
Update忘れ
最も多いミスです。
「エラーは出ないのに保存されない」という場合は、まずUpdateを書いているか確認しましょう。
Close前にUpdateしていない
Recordsetを閉じる前に保存処理が必要です。
実務では、次の順番を徹底します。
rs.Update
rs.Closeエラー発生時に保存されない
途中でエラーになるとUpdateまで処理が進まず、保存されないことがあります。
実務ではエラー処理も重要です。
On Error GoTo ErrHandlerを使うケースも多いです。
オブジェクト解放忘れ
Recordsetを使った後は、
rs.Close
Set rs = Nothingを忘れないようにしましょう。
実務では保守性や安定動作にも関わる重要ポイントです。
実務での使い方とまとめ
Access VBAのUpdateは、データ保存処理の基本といえる重要な命令です。
| 処理 | 役割 |
|---|---|
| AddNew | 新規追加開始 |
| Edit | 編集開始 |
| Update | 保存 |
- AddNew
- Edit
- Update
初心者はまず上記の3つをセットで覚えるのがおすすめです。
ここを理解できると、Access VBAのフォーム開発やデータ操作がかなり理解しやすくなります。
コメント