Если вы хотите просто автоматически отправлять после резервного копирования, сделайте код электронной почты Sub, который можно вызвать в процедуре нажатия кнопки Backup.
Sub SendEmail(strFile As String)
...
oEmail.Attachments.Add strFile
...
End Sub
Затем, вызывая подпункт в конце кнопки резервного копирования, нажмите:
SendEmail(newPath & "\xxx Database Update v.1.6_be_" & CurrentDate & ".accdb")
Многие системы электронной почты отклоняют электронные письма с файлом Access в качестве вложения из-за злонамеренногоКодовый риск.Тем не менее, заархивированный файл доступа должен пройти защиту.Пример кода:
Dim strZip As String
strZip = CurrentProject.Path & "\Construction.zip"
'create empty zip folder
'found this on web, no idea what the Print line does but if it isn't there, this won't work
Open strZip For Output As #1
Print #1, "PK" & Chr$(5) & Chr$(6) & String(18, 0)
Close #1
'copy file into zip folder
Dim objApp As Object
Set objApp = CreateObject("Shell.Application")
'variable for source file doesn't seem to work in this line
'also double parens not in original example code but won't work without
objApp.NameSpace((strZip)).CopyHere CurrentProject.Path & "\Construction.accdb"
Как отмечено в комментарии к коду, проблема заключается в передаче исходного файла через переменную.Извините, мне никогда не нужно было решать.
Создание кода zip-файла можно выполнить в процедуре электронной почты, а затем прикрепить zip-файл:
oEmail.Attachments.Add strZip
Затем в конце процедуры электронной почты можно удалить zip-файл.файл:
Kill strZip