Microsoft Access Club >DAO入門講座 >このページ >次頁 < 前項  サイト内検索


カレントレコードの編集 : DAO入門講座



Recordsetオブジェクトを作成して、レコードを表示させるだけでは物足りないです。ここからは、レコードの編集を行ってみましょう。

  • 但し、レコードを編集できるのはテーブルタイプ、またはダイナセットタイプのRecordsetオブジェクトだけです。スナップショットタイプは読み取り専用なので編集を行うことができません。

Editメソッド、Updateメソッド

基本形としては、編集する内容をEditメソッドとUpdateメソッドの間に記述します。

  • Editメソッドは、レコードを編集可能な状態にするメソッドです。
  • Updateメソッドは、編集済みのレコードを保存するメソッドです。
    • Updateメソッドを実行せずにカレントレコードを移動した場合、Recordsetオブジェクトを閉じた場合などは、編集内容が失われますので注意して下さい。

カレントレコードの編集

下記のプロシージャは、Recordsetオブジェクトを作成し、カレントレコードを編集します。

Sub SamplePro()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("取引先リスト")
   
    rs.Edit ' --- A
    rs!取引先 = rs!取引先 & " 御中"
    rs.Update ' --- B
        
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
    
End Sub
解説
  1. Editメソッドを記述し、編集可能な状態に設定します。
  2. Updateメソッドを記述し、編集内容を更新します。

   

全レコードの編集

全レコードを編集するには、カレントレコードを移動させる必要があります。つまり、Loopで全レコードを一度カレントレコードにし、その時点で編集します。

Sub SamplePro2()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("取引先リスト")
   
    Do Until rs.EOF ' --- A
        rs.Edit
        rs!取引先 = rs!取引先 & " 御中"
        rs.Update
        rs.MoveNext ' --- B
    Loop
        
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing
    
End Sub
解説
  1. EOFプロパティを用いて、先頭レコードから末尾までのレコードを対象とします。
  2. MoveNextメソッドで、次のレコードに移動させます。

   

留意点

  • レコードを更新する際には、警告メッセージが表示されませんので、Ifステートメントなどで独自に作成する必要があります。
  • 全レコードのデータを編集する場合で、対象となるレコードが数千件もあるような大規模データベースであれば、更新クエリを用いる方がベターです。この場合は、警告メッセージが表示されます。

 

2004/05/10

ページの先頭へ 前ページへ戻る

 


カレントレコードの編集 : DAO入門講座


 

-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。