Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOとSQLを用いてフィールドデータを一括で更新する方法 : VBAのTips解説



UPDATE 〜 SET 構文

UPDATE 〜 SET 構文とは、SETで指定したフィールドに対して、データを変更するSQL構文です。UPDATEにはテーブル名を指定します。Accessの更新クエリーと同じく、レコードを更新すると元に戻すことができません。

  • 書式
UPDATE tablename SET fieldname = value
  • 引数
引数 意味 指定
tablename テーブル名を指定します 省略不可
fieldname フィールド名を指定します 省略不可
value 更新後のフィールドに挿入する値、または式を指定します 省略不可

関連項目

  1. CurrentDb(DAO)
  2. Deleteメソッド(DAO、ADO)

事例 ) 「支払管理」テーブルの月次処理を行う

「支払管理」テーブルの月次処理を行います。月次処理とは、該当の年月日を持つレコードのフィールドを更新する処理です。

  1. テーブルを作成します。
  2. ID、支払日、支払先、支払額フィールドを作成します。
  3. 連結フォームを作成します。
  4. ID、支払日、支払先、支払額テキストボックスを作成します。
  5. フォームフッターにコンボボックスを作成します。
  6. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   Dim db As DAO.Database
   Dim mySQL As String
   Dim strMsg As String
   Dim varComValue As Variant

   varComValue = [Forms]![UpdateSet_2]![Cmb日付抽出] '--- A
   strMsg = "選択した月次の更新処理を行います。"

   Set db = CurrentDb

   mySQL = "UPDATE 支払管理 SET 更新 = True "
   mySQL = mySQL & "WHERE (Format(支払管理.支払日,'yyyy/mm') = '" & _
							varComValue & "');"

   If MsgBox(strMsg, vbYesNo) = vbYes Then
      db.Execute mySQL '--- B
      Me.Requery
   End If

   db.Close: Set db = Nothing

End Sub
解説
  1. フォーム上にあるコンボボックス(Cmb日付抽出)から値を求めるます。
  2. アクションクエリーであるため、ExecuteメソッドでSQLを実行します。

動作確認

  1. フォームをビューモードで開きます。
  2. 月次更新をかける年月をコンボボックスから選択します。
  3. サンプルでは、2004年7月分を処理します。
  4. [実行]コマンドボタンをクリックします。

  1. 該当のレコードの更新フィールドにTrueが設定され、一覧表示がされません。

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

 


DAOとSQLを用いてフィールドデータを一括で更新する方法 : VBAのTips解説


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。