オブジェクトとしてクエリーを作らずに、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の
チェックを持ってきて下さい
|