ExcelWork.info

レコードの更新(ADO)Update メソッド

データベースのレコードを更新する

Update メソッド

カレントレコードの内容を更新します。

【書式】

object.Update [ FieldList, Values ]


引数・戻り値

  • object  ・・・  対象となる Recordset オブジェクトを指定します。
  • FieldList  ・・・  変更するレコードのフィールド名を指定します。複数のフィールド名を指定するには、フィールド名、または位置を表す値の並びを配列として指定します。省略可。
  • Values  ・・・  変更するレコードの値を指定します。複数の値を指定するには配列にします。省略可。

レコードを更新する場合、Recordset オブジェクトのOpen メソッドの引数 LockType には、adLockOptimistic または adLockPessimistic を指定します。(Recordset を開く時に使うロックの種類に関しては、データベース(Access 等)に接続(ADO) を参照して下さい。)

Update メソッドを実行すると実行前に変更したレコード、追加したレコードの内容が保存されます。

Update メソッド実行前後でカレントレコードは移動しません。

Field オブジェクトValue プロパティを使用してレコードの値を設定後、引数なしの Update メソッドを実行してレコードを更新することもできます。

(例)※ rs は、Recordset オブジェクト

Find メソッド

Recordset オブジェクト内を検索します。

【書式】

object.Find ( Criteria, SkipRows, SearchDirection, Start )


引数・戻り値

  • object  ・・・  対象となる Recordset オブジェクトを指定します。
  • Criteria  ・・・  検索する条件式を文字列型(String)で指定します(条件式は、”(二重引用符)で囲みます)。検索できるのは、単一列のみです。比較演算子には、>、<、<=、および like 演算子を使用できます。値には、文字列、浮動小数点数、日付を使用できます。文字列の値は、'(単一引用符)または #(シャープ記号)で囲みます(例:「user = 'Rin'」または「user = #Rin#」)。日付の値は、#(シャープ記号)で囲みます(例:「sdate > #7/22/97#」)。また、like 演算子を使用する場合、「keyword like ‘k*’」、「keyword like ‘*ba*’」のように文字列の末尾または文字列の先頭と末尾にアスタリスク(*)を使用して検索します。ただし「keyword like ‘*ea’」、「keyword like ‘a*c’」のように文字列の先頭や文字列中にアスタリスク(*)を使用することはできません。この場合はエラーが発生します。
  • SkipRows  ・・・  検索を開始する、カレント行または Start ブックマークからの行のオフセットを指定する長整数型(Long)の値を指定します。省略可能です(既定値は 0 。既定では、カレント行から検索が開始されます)。
  • SearchDirection  ・・・  検索する方向を SearchDirectionEnum クラスの定数または値を指定します。省略可能です。
    定数 内容
    adSearchForward
    (既定値)
    1 前方検索をし、Recordset の末尾で終了します。一致するレコードが見つからない場合、レコード ポインタは EOF に移動します。
    adSearchBackward -1 後方検索をし、Recordset の先頭で終了します。一致するレコードが見つからない場合、レコード ポインタは BOF に移動します。

  • Start  ・・・  検索の開始位置として使用するバリアント型(Variant)のブックマークを指定します。省略可能です。

Find メソッドを呼び出す前にカレント行の位置が設定されていない場合は、エラーが発生します。この場合、Find メソッドを呼び出す前に、MoveFirst などの行の位置を設定するメソッドを呼び出す必要があります。

Find メソッドを実行し、条件が一致したレコードがあればそのレコードの位置に移動します。条件を満たすレコードがなかった場合は、カレントの位置は Recordset の最後または最初に設定されます。



Update メソッド・Find メソッド 使用例

サンプルVBAソース


実行結果