【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のフォーム開発やデータ操作がかなり理解しやすくなります。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次