|

|
|
 |
2.9 レコードセットの操作/更新 |
 |
|
|
|
|
|
レコードセットオブジェクト内の特定のレコードを更新する方法です。この方法は、SQLのUPDATE文を使わない更新の方法です。
レコードセットオブジェクト内の特定のレコードを更新するときは、レコードセットオブジェクトのEditメソッドとUpdateメソッドを使います。
|
|
|
|
|
|
|
|
|
|
まずは「レコードセット内のどのレコードが更新対象となるか」ですが、これは現在読み込まれているレコードです。読み込まれているレコードに対してEditメソッドを実行すると、そのレコードの編集(フィールドへの値の設定など)が出来るようになります。
ただし、Editメソッドを実行しレコードを編集しただけでは、実際の更新(レコードの更新)は行われません。編集した内容を反映するときは、Updateメソッドを実行します。Updateメソッドは、更新した内容の保存と考えれば良いでしょう。
例では、「住所録テーブル」というテーブルを開き、フィールド「漢字氏名」が鬼瓦権蔵というレコードをFindFirstメソッドで検索。見つかった場合はそのレコードの漢字氏名と関係に変更を加えています。
Sub prcEditUpdate2000()
'Access VBA Tips
'2.9 レコードセットの操作/更新
'Access2000以降での手順
Dim daoDB As DAO.Database
Dim daoRS As DAO.Recordset
'データベースのオープン(データベースオブジェクトの作成)
Set daoDB = CurrentDb
'テーブルのオープン(レコードセットの作成)
Set daoRS = daoDB.OpenRecordset("住所録テーブル", dbOpenDynaset)
'漢字氏名が「鬼瓦権蔵」というレコードを検索します
daoRS.FindFirst "漢字氏名 = '鬼瓦権蔵'"
'レコードが見つかったときは、そのレコードの漢字氏名と
'関係というフィールドの内容を書き換えます
If daoRS.NoMatch = False Then
daoRS.Edit
daoRS!漢字氏名 ="鬼瓦権三郎"
daoRS!関係 = 3
daoRS.Update
End If
'テーブルのクローズ
daoRS.Close
'データベースのクローズ
daoDB.Close
End Sub
|
※Access2000以降の場合。ただし、DAOを使う場合は参照設定が必要です。
Sub prcEditUpdate97()
'Access VBA Tips
'2.9 レコードセットの操作/更新
'Access97までの手順
Dim daoDB As Database
Dim daoRS As Recordset
'データベースのオープン(データベースオブジェクトの作成)
Set daoDB = DBEngine.Workspaces(0).Databases(0)
'テーブルのオープン(レコードセットの作成)
Set daoRS = daoDB.OpenRecordset("住所録テーブル", DB_OPEN_DYNASET)
'漢字氏名が「鬼瓦権蔵」というレコードを検索します
daoRS.FindFirst "漢字氏名 = '鬼瓦権蔵'"
'レコードが見つかったときは、そのレコードの漢字氏名と
'関係というフィールドの内容を書き換えます
If daoRS.NoMatch = False Then
daoRS.Edit
daoRS!漢字氏名 ="鬼瓦権三郎"
daoRS!関係 = 3
daoRS.Update
End If
'テーブルのクローズ
daoRS.Close
'データベースのクローズ
daoDB.Close
End Sub
|
※Access97までの場合。
|
|
|
|
|