64位
C:\ WINDOWS \ SYSTEM32 \ REGSVR32.EXE
C:\ Program Files文件\ Common Files文件\系統\ ADO \ msadox.dll
32位
C:\ WINDOWS \ Syswow64資料\ regsvr32.exe的
C:\ Program Files文件(x86)的\ Common Files \ System \ ado \ msadox.dll
另外,請注意,您可以在64位機器上運行32位Python。
[編輯2]
我已經做了一些測試,並得出結論,這種做法並沒有在這種特殊情況下工作,因爲Python腳本正在運行64位,但64位Access Access數據庫引擎未安裝。 (32位Office僅安裝ACE的32位版本。)
錯誤消息可能有點誤導。這不是ADOX組件缺失(未註冊),它是無法找到的ACE引擎本身的64位版本。
此外,在安裝了32位訪問64位機,ACE的64位版本將永遠可用,因爲它不能被安裝
這很可能當您嘗試從64位Python腳本處理.accdb文件中的數據時會產生影響。我沒有對的Python我的測試機「的64位Windows上的32位Office」可用的,但是當我試圖下面的VBScript ...
Option Explicit
Dim con, rst
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\Users\Gord\Desktop\adoTest.accdb;"
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT Field1 FROM Table1", con
Wscript.Echo rst(0).Value
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
...結果如下:
C:\__tmp>C:\Windows\System32\cscript.exe /nologo dataAccessTest.vbs
C:\__tmp\dataAccessTest.vbs(4, 1) ADODB.Connection: Provider cannot be found.
It may not be properly installed.
C:\__tmp>C:\Windows\SysWOW64\cscript.exe /nologo dataAccessTest.vbs
This is Table1 data in Access.
以64位運行時腳本失敗,但以32位運行時工作正常。
建議:如果您的計算機安裝了32位Access,那麼您最好將您的Python腳本運行爲32位。
優秀,那就像一個魅力! 還有一個問題:我在哪裏可以獲得您爲dbLangGeneral設置的所有信息? 乾杯托馬斯 – 2013-03-27 15:08:33
在Access會話中,我使用了'Debug.Print dbLangGeneral'並複製了它返回的字符串。有關其他選項的詳細信息,請參閱CreateDatabase幫助主題。 – HansUp 2013-03-27 15:12:08