В комментарии вы сказали, что «запрос запускается, когда открывается БД, поскольку форма открывается для пользовательского ввода. Полагаю, я мог бы создать макрос для выполнения запроса MAKE TABLE, а затем другой запрос ALTER TABLE, если мне нужно».
Вместо того, чтобы воссоздавать T2 каждый раз, может быть проще создать T2 один раз, а затем очищать его содержимое каждый раз перед добавлением из T1.Чтобы отбросить строки из T2:
Dim strSql as String
strSql = "DELETE FROM T2;"
CurrentProject.Connection.Execute strSql
Если вы хотите сбросить автономный номер на 1 для столбца ID, вы можете использовать инструкцию ALTER TABLE.
strSql = "ALTER TABLE T2 ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strSql
Затем добавьтесодержимое от T1 до T2.
strSql = "INSERT INTO T2 (field1, field2)" & vbCrLf & _
"SELECT field1, field2 FROM T1;"
CurrentProject.Connection.Execute strSql
Просто оставьте столбец идентификатора вне списков полей и позвольте автонумерации справиться с этим.При желании вы можете контролировать порядок добавления строк T1 с помощью ORDER BY в части SELECT этого оператора.
Я использовал ADO (CurrentProject.Connection) для выполнения всех трех из этих операторов.Однако первое и третье операторы должны работать в DAO, если вы предпочитаете.Но этот оператор ALTER TABLE должен выполняться из ADO.