У меня есть три таблицы в Access: один связан с Excel, один связан с MySQL и локальная таблица с именем 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
EDIT:
Я не мог бы сделать это без вас, ребята. Мой код делает именно то, что я хочу, чтобы это сделать, без каких-либо проблем:
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
Каковы будут ошибки, которые вы получили? –
Я получаю другую ошибку при каждом изменении кода. Для вышеприведенного кода я получаю ошибку времени выполнения 3061 (Слишком мало параметров. Ожидаемое 1). Мое исследование показало его из-за ошибки в запросе, поэтому я избавился от той части запроса и застрял с ошибкой 3155 во время выполнения (ODBC - вставка в связанную таблицу не удалась) – Th1nker