Я использую код, подобный приведенному ниже, чтобы добавить некоторые файлы в папку zip:
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(CVar(strDest)).CopyHere CVar(strSource)
В большинстве случаев это работает нормально, но иногда я получаю сообщение об ошибке:
"(Ошибка сжатых (заархивированных) папок). Невозможно создать выходной файл". Эта ошибка возникает асинхронно за пределами моего кода VBA, и поэтому я не могу перехватить ее, чтобы предпринять действия по исправлению.
Если я войду в режим перерыва и вернусь к:
oApp.Namespace(CVar(strDest)).CopyHere CVar(strSource)
тогда файл добавлен правильно.
Я предполагаю, что существует какая-то блокировка сжатой папки или исходного файла, вызывающая эту проблему, но я не уверен, как это проверить. Я должен отметить, что добавляемые файлы являются файлами PDF, созданными в Microsoft Access 2007, и мы используем полные пути, и код выполняется следующим образом, создавая до 10 файлов PDF на файл ZIP:
Создать почтовый индекс
Запустить этот цикл:
For Each ReportToRun
CreatePdf ' using DoCmd.OutputTo acOutputReport, "rptHame", acFormatPDF, strReportName
AddToZip
Next
Есть идеи, как это исправить или перехватить ошибку Не удается создать выходной файл?
Спасибо