通过VBScript使用ADOX
难道您不能通过VBScript实现ADOX库吗?下面的代码通过Windows 7上的Access 2010、Office 2010 32位完美运行,但不是通过VBScript。ADOX不是像FileSystemObject那样的另一个COM对象吗通过VBScript使用ADOX,vbscript,ms-access-2010,adox,Vbscript,Ms Access 2010,Adox,难道您不能通过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 Sou
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。这并不是一个简单的答案,只是一个给我带来巨大帮助的提示。我经常与只使用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
是的,ADOX应该很好用。如果没有,您将在
CreateObject()
行中得到一个错误。您的错误发生在ActiveConnection
行上。您是否使用64位Windows 7?如果是,您是否使用64位版本的WSCRIPT.EXE
?您可能需要使用32位版本的WSCRIPT
来访问32位OLEDB驱动程序。32位版本的WSCRIPT.exe
和cscript.exe
可以在C:\Windows\SysWOW64
中找到。就是这样!非常感谢。邦德,如果你想回答这个问题,我会把答案记下来。谢谢