1

您不应该能够通过 VBScript 实现 ADOX 库吗?下面的代码通过 Windows 7 上的 Access 2010、Office 2010 32 位运行完美,但不通过 VBScript。ADOX 不就是像 FileSystemObject 这样的另一个 COM 对象吗?

Dim objADOX

Set objADOX = CreateObject("ADOX.Catalog")
objADOX.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Zamdrist\Desktop\Work\Scripts\Shell.accdb"
MsgBox objADOX.Tables.Count

抱歉,我应该指出,VBScript 抱怨提供程序不存在。奇怪,因为我确实安装了 Access 2010。

4

1 回答 1

2

这并不意味着作为一个答案,只是作为一个对我有很大帮助的提示。我一直在与仅使用 32 位的提供商合作,所以我总是将附加代码添加到我的所有脚本中。这样,执行代码的机器是 32 位还是 64 位都没有关系。

'Check for 64 bit and run as 32 bit if needed.
'On error resume next

Set oFso = CreateObject("Scripting.FileSystemObject")
Set oWs = CreateObject("WScript.Shell")

windowsdir = oWs.ExpandEnvironmentStrings("%windir%")

If InStr(LCase(WScript.FullName), windowsdir & "\system32\") And oFso.FolderExists(windowsdir & "\SysWow64") Then       
    oWs.Run windowsdir & "\SysWow64\WScript.exe """ & WScript.ScriptFullName & """"
    WScript.Quit
End If

'code to run as 32 bit
于 2015-04-27T21:04:28.663 回答