Две вещи. Во-первых, DAO против ADO практически не имеет значения. Они оба доступны для доступа через Windows 7 и AFAIK, планы по их удалению отсутствуют. Либо должно быть в порядке, чтобы использовать в Access.
Во-вторых, вы можете просто сделать это:
Public Sub Example()
With Access.CurrentDb
.Execute "DELETE Table2.* FROM Table2;"
.Execute "INSERT INTO Table2 ( fld1, fld2 ) SELECT Table1.ID, Table1.MyField FROM Table1;"
End With
End Sub
Вы могли бы просто так:
Public Sub Example()
With Access.DoCmd
.RunSQL "DELETE Table2.* FROM Table2;"
.RunSQL "INSERT INTO Table2 ( fld1, fld2 ) SELECT Table1.ID, Table1.MyField FROM Table1;"
End With
End Sub
Но метод Execute выдает более информативные сообщения об ошибках (и, если вам все равно, DAO)