Ошибка в VBA, не распространяющаяся на powershell - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть скрипт 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: click to view redacted image

...