我正在使用包含以下代码的函数从Windows PowerShell调用Microsoft Access宏:
$Access = New-Object -com Access.Application
Try {
$Access.OpenCurrentDatabase($File)
} Catch {
$Ex = $_
Write-Host "$($Ex.Exception.Message)"
}
$Success = $false
Try {
$ErrorActionPreference = "Stop"
$Access.DoCmd.RunMacro($Macro)
$Success = $true
} Catch {
$Ex = $_
Write-Host "$($Ex.Exception.Message)"
}
此代码可用于打开数据库和运行宏。但是,如果碰巧遇到与表/数据库/对象有关的错误,则错误消息将丢失该详细信息。这是$($ Ex.Exception.Message)的两个示例:
Microsoft Access数据库引擎无法打开或写入文件'|'。它已经由另一个用户专门打开,或者您需要权限才能查看和写入其数据。
Microsoft Access找不到对象'| 1'。
我尝试遍历PowerShell中Exception和COMException对象的所有属性,但无法获得表/查询的有用名称而不是'|'。关于如何解决这些错误消息以获取它们所引用的对象名称的任何想法,或者给我提供对象名称的另一种方式?谢谢。