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

レコードの編集 - Updateメソッド : ADO入門講座



Updateメソッドを用いて、開いたRecordsetオブジェクト内のカレントレコードの内容を編集し更新することができます。編集できるのはカレントレコードだけですから、目的のレコードをMoveメソッドやFindメソッドを用いてカレントレコードに移動させる必要があります。

留意点
  • Updateメソッドを用いて編集できるのは、カレントレコードだけです。
  • 編集時に警告メッセージ等は表示されません。

Updateメソッドの構文

Updateメソッドの構文は、以下のような組み合わせになります。

Recordsetオブジェクト + .(ドット) + Updateメソッド+ (半角) +
Fields+ ,(カンマ) + Values

項目 意味
Recordsetオブジェクト 開いているRecordsetオブジェクトです。
Fields 編集するフィールド名を指定します。
Values

フィールドに代入する値を指定します。

留意点
  1. Fieldsにはフィールド名を指定しますが、"(ダブルクォーテーション)で囲みます。

  2. Valuesが、数値型ではそのまま、文字列であれば"(ダブルクォーテーション)、日付/時刻型では#(シャープ)で囲みます。

サンプルテーブルの作成

サンプルテーブルを以下のように作成します。テーブル名は、T_sampleテーブルです。

ID 売上日 社員名 性別 売上額
6 2004/01/23 橘修平 男性 52100
5 2004/02/04 柴田喜一 男性 654100
8 2004/03/25 正道良一 男性 4875210
1 2004/07/29 草薙良子 女性 120310

1つのフィールドの値を変更するプロシージャ

このプロシージャは、T_Sampleテーブルの売上額フィールドの値が500,000以上の場合は、5%加算します。

Sub ADO_Update()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strmsg As String
    Dim lngRet As Long
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    
    rs.Open "T_Sample", cn, adOpenKeyset, adLockOptimistic
    
    Do Until rs.EOF
        If rs!売上額 >= 500000 Then
            lngRet = rs!売上額 * 1.05
            rs.Update "売上額", lngRet
        End If
        strmsg = strmsg & rs!売上日 & " : " & rs!社員名 & _
                " : " & rs!性別 & " : " & rs!売上額 & "円" & vbNewLine
        rs.MoveNext
    Loop
    
    MsgBox strmsg
    
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing

End Sub
実行結果
  1. プロシージャを実行します。
  2. Updateメソッドを用いてフィールドデータ値を編集します。
  3. 以下のメッセージボックスが表示されます。

複数フィールドの値を変更するプロシージャ

このプロシージャは、T_Sampleテーブルの売上額フィールドの値が500,000以上の場合は、元データに5%加算し、社員名の前に■を付加します。

Sub ADO_UpdateS()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strmsg As String
    Dim lngRet As Long
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    
    rs.Open "T_Sample", cn, adOpenKeyset, adLockOptimistic
    
    Do Until rs.EOF
        If rs!売上額 >= 500000 Then
            lngRet = rs!売上額 * 1.05
            rs.Update "売上額", lngRet
            rs.Update "社員名", "■" & rs!社員名
        End If
        strmsg = strmsg & rs!売上日 & " : " & rs!社員名 & _
                " : " & rs!性別 & " : " & rs!売上額 & "円" & vbNewLine
        rs.MoveNext
    Loop
    
    MsgBox strmsg
    
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing

End Sub
実行結果
  1. プロシージャを実行します。
  2. Updateメソッドを用いてフィールドデータ値を編集します。
  3. 以下のメッセージボックスが表示されます。

ちょっとお耳を・・・
  • プロシージャの記述方法として、まずフィールドに値を代入したのち、値をまとめて最後にUpDateメソッドを実行します。
    このような場合は、Updateメソッドの引数は不要です。

関連ページ

2005/06/25

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


レコードの編集 - Updateメソッド : ADO入門講座


 

-Microsoft Access Club-

注目のモンスター専用サーバーからお買い得プランまで幅広くそろえています。cPanel、PLESK、WEBMINまでお任せ下さい。
注目のモンスター専用サーバーからお買い得プランまで幅広い。
cPanel、PLESK、WEBMINまでお任せ下さい。