Макрос MS Access для экспорта файла в формате .xlsx в каталог c filepath и добавления текущей даты (ГГММДД) в конец имени файла - PullRequest
0 голосов
/ 15 апреля 2020

Я думаю, что это может использовать VBA, но есть ли способ создать следующую последовательность действий во встроенных функциях макросов MS Access?:

  1. Запустить запрос на удаление для таблица (таблица1)
  2. Выполнить запрос на добавление для таблицы1
  3. Таблица1 экспортируется, если выполняются следующие условия:
    • таблица1 экспортируется как .xlsx
    • дата добавляется в конец имени файла (table1_200414.xlsx)
    • файл экспортируется в указанный c путь к файлу

У меня есть видел шаг № 3, выполненный с VBA, но я хочу иметь возможность копировать этот макрос между базами данных, поэтому я не знаю, будет ли код VBA копироваться простой копией-вставкой макроса. Если это так, то как бы вы сделали это в VBA?

1 Ответ

0 голосов
/ 15 апреля 2020

Лучший способ сделать это в 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.

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...