Access には 3 つのテーブルがあります。1 つは Excel にリンクされ、もう 1 つは MySQL にリンクされ、1 つの行と列を持つ LastQuery というローカル テーブルがあります。タイマー付きのフォームで VBA クエリを使用して、Excel テーブルからデータを選択し、それを MySQL テーブルに挿入します。同時に、dtmInsertedTime
挿入した最後のレコードの を LastQuery に (タイトルの行にlast
) 更新して、次にフォーム タイマーが作動したときに次のレコードから続行し、すべてのレコードが挿入されるまで続行するようにします。私のコードは単純ですが、エラーが発生して説明どおりに動作しません。これが私のコードです:
Private Sub Form_Timer()
CurrentDb.Execute "INSERT INTO tblevent (vchrFacility, intWorkCell, intStn, intEventCode) SELECT vchrFacility, intWorkCell, intStn, intEventCode from excelTblEvent where dtmInsertedTime > LastQuery.Last"
CurrentDb.Execute "UPDATE LastQuery, excelTblEvent SET LastQuery.Last = excelTblEvent.dtmInsertedTime"
End Sub
編集 :
皆さんがいなければ、私はそれを成し遂げることができませんでした。私のコードは、問題なく、やりたいことを正確に実行します。
Option Compare Database
Private Sub Form_Timer()
CurrentDb.Execute "INSERT INTO tblevent (vchrFacility, intWorkCell, intStn, intEventCode) SELECT vchrFacility, intWorkCell, intStn, intEventCode FROM excelTblEvent WHERE dtmInsertedTime > DLookup('Last', 'LastQuery')"
CurrentDb.Execute "UPDATE LastQuery, excelTblEvent SET LastQuery.Last = excelTblEvent.dtmInsertedTime"
End Sub