DAO レコードセット内の既存のレコードを変更する

Edit メソッドと Update メソッドを使用して、テーブルタイプまたはダイナセットタイプの Recordset オブジェクトの既存のレコードを変更できます。

テーブル タイプまたはダイナセット タイプの Recordset オブジェクト内の既存レコードを変更するには

  1. 変更するレコードに移動します。

  2. Edit メソッドを使用して、編集のためにカレント レコードを準備します。

  3. レコードに対して必要な変更を行います。

  4. Update メソッドを使用して、カレント レコードへの変更を保存します。

次のコード例は、Employees というテーブル内のすべての営業担当者の役職を変更する方法を示しています。

Dim dbsNorthwind As DAO.Database 
Dim rstEmployees As DAO.Recordset 
 
   Set dbsNorthwind = CurrentDb 
   Set rstEmployees = dbsNorthwind.OpenRecordset("Employees") 
 
   rstEmployees.MoveFirst 
   Do Until rstEmployees.EOF 
      If rstEmployees!Title = "Sales Representative" Then 
         rstEmployees.Edit 
         rstEmployees!Title = "Account Executive" 
         rstEmployees.Update 
      End If 
      rstEmployees.MoveNext 
   Loop 

注:

現在のレコードの値を変更する前に Edit メソッドを使用しないと、実行時エラーが発生します。 カレント レコードを編集した後で、Update メソッドを実行せずに別のレコードに移動したり Recordset オブジェクトを閉じたりすると、変更内容は失われ、警告も表示されません。 たとえば、この例から Update メソッドを削除すると、[Employees] テーブルに対する変更は発生しないという結果になります。

CancelUpdate メソッドを使用して、変更を保存せずに Edit メソッドと保留中のトランザクションを終了することもできます。 Edit メソッドはカレント レコードから別のレコードに移動するだけで終了させることができますが、この方法は、カレント レコードが Recordset の先頭または最終のレコードである場合や、新しく作成されたレコードである場合には使用できないことがあります。 通常、 CancelUpdate メソッドを使用する方が簡単です。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。