Лучший способ сделать это в VBA, не только потому, что я думаю, что шаг 3 можно выполнить только с помощью VBA, но и потому, что вы получаете обработку ошибок. А также, если вы используете в строке SQL операторы для выполнения удаления / добавления, вам не нужно беспокоиться о копировании дополнительных запросов в другую базу данных - вы просто копируете процедуру.
Здесь короткая процедура VBA, которая выполняет все 3 шага для вас:
Sub sExportData()
On Error GoTo E_Handle
Dim strFolder As String
Dim strFile As String
Dim strID As String
CurrentDb.Execute "DELETE * FROM [Table1];"
CurrentDb.Execute "INSERT INTO [Table1] SELECT * FROM [TableAppend];"
strFolder = "J:\downloads\"
strID=DLookup("ID","Table1")
strFile = "Table1_" & strID & Format(Date, "yymmdd") & ".xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Table1", strFolder & strFile, True
sExit:
On Error Resume Next
Exit Sub
E_Handle:
MsgBox Err.Description & vbCrLf & vbCrLf & "sExportData", vbOKOnly + vbCritical, "Error: " & Err.Number
Resume sExit
End Sub
Не зная точно, что вы делаете, может оказаться, что вам не нужно удалять / добавлять к Table1
. Может быть возможно вывести данные, выбранные в запросе на добавление, непосредственно в файл Excel.
С уважением,