相关疑难解决方法(0)

如何从MS Access数据库获取表名?

Microsoft SQL Server和MySQL有一个我可以查询的INFORMATION_SCHEMA表.但是,它在MS Access数据库中不存在.

有没有相同的我可以使用?

ms-access

33
推荐指数
3
解决办法
13万
查看次数

授予 MSysObjects 读取权限

我需要获取数百个 MS Access DB 的元数据,因此我需要自动化元数据收集过程。我想查询此处描述的内容,但在查询数据库之前,我需要对MSysObjects表进行读取访问。

我不断收到以下错误:

无法读取记录;没有“MsysObjects”的读取权限。

所以我更深入地挖掘:

我已经阅读了 C# 部分中有关类似问题的文章(请参阅此处以及此一篇)。

我编写了一个简单的脚本,该脚本非常适合创建表等,但我在设置读取访问权限时遇到问题。

$ScrUsr = $(whoami)
Write-Host $ScrUsr

$cmd = "GRANT SELECT ON MSysObjects TO [$ScrUsr]"
Write-Host $cmd

Function Invoke-ADOCommand($Db)
{
  $connection = New-Object -ComObject ADODB.Connection
  $connection.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$db;" )
  $command = New-Object -ComObject ADODB.Command
  $command.ActiveConnection = $connection
  $command.CommandText = $cmd
  $rs = $command.Execute()
  $connection.Close()
} 

$Db = "C:\Temp\test1.accdb"

Invoke-ADOCommand -db $Db 
Run Code Online (Sandbox Code Playgroud)

执行脚本引发以下错误原因:

无法打开 Microsoft Office Access 数据库引擎工作组信息文件。

我怎样才能允许读取权限MSysObjects

powershell ms-access metadata adodb office-automation

5
推荐指数
1
解决办法
4383
查看次数