У меня есть скрипт powershell, который запускает макрос MS Access:
$MsAccessDb= New-Object -ComObject Access.Application -ErrorAction Stop
затем в выражении foreach делает это:
...
$MsAccessDb.OpenCurrentDatabase($file)
$MsAccessDb.DoCmd.RunMacro('mcrUpdate')
...
Этот макрос вызывает функцию VBA, которая обновляет отчет Excel. Теперь ошибки обрабатываются в функции vba с помощью Err.Raise. Я намеренно заставляю ошибку возникать в VBA, и ошибка выдается (в диалоговом окне). Но когда я запускаю макрос с помощью powershell, он не улавливает ошибку, хотя я использую -ErrorAction для перехвата нескончаемых ошибок.
Что я делаю не так. Мне нужно распространить эти ошибки из приложения MS Access в powershell, чтобы оповещение по электронной почте захватывало его.
URL-адрес - это отредактированный образ ошибки, полученный из VBA, когда я запускаю только сценарий VBA. По некоторым причинам я не могу объяснить, что эта ошибка не распространяется на powershell при запуске макроса MS Access из powershell: