●概要●
オブジェクトとしてクエリを作らずに、VBAでその都度SQL文を実行する方法です。
DatabaseオブジェクトのExecuteメソッドを利用します。
●サンプルコード●
Sub SetNewStudent()
Dim db As Database
' カレントデータベース セット
Set db = CurrentDb
' 抽出ワークへ全学生をセット
db.Execute "DELETE FROM t_抽出ワーク", dbFailOnError
db.Execute "INSERT INTO t_抽出ワーク(個人ID)" & _
" SELECT 個人ID FROM t_学生 ORDER BY 個人ID", dbFailOnError
' オブジェクト解放
Set db = Nothing
End Sub
●備考●
Executeメソッドの第2引数に指定する定数によって処理の内容が異なってきます。
例えば(サンプルのように)、dbFailOnError を指定すると、エラーが発生時に更新をロールバックします。指定がなければ、矛盾した更新でも実行されます。
●注意●
Access2000の場合、デフォルトではDAOに参照設定されていません。
Visual Basic Editor(VBE)を開き、メニューの[ツール]−[参照設定]から、Microsoft DAO 3.6 Object Libraryにチェックを入れて下さい。
その際にMicrosoft ActiveX Data Object 2.1 Libraryよりも上に、DAOのチェックを持ってきて下さい