1

VBScript を介して ADOX ライブラリを実装できるようにすべきではありませんか? 以下のコードは、Windows 7、Office 2010 32 ビット上の Access 2010 経由で完全に実行されますが、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 に答える