使用pyodbc连接到MS Access 2007(.accdb)数据库

|| 我在使用Python 2.7.1 x64的Win7 x64。我正在将我在VC ++中创建的应用程序移植到Python,以达到教育目的。 原始应用程序通过使用以下连接字符串连接到MS Access 2007格式的DB文件没有问题:
OleDbConnection^ conn = gcnew OleDbConnection(\"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|DB.accdb\");
现在,当我尝试使用pyodbc和以下连接字符串连接到Python中的同一数据库文件(这次输入C:\\)时:
conn = pyodbc.connect(\"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\\DB.accdb;\")
,无论我是保留OLEDB提供程序还是使用此处所述的ѭ2(MS提到它不适用于64位),我都会不断收到以下错误消息:
pyodbc.Error: (\'IM002\', \'[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)\')
是什么导致此问题? 加: 我更仔细地研究了pyodbc文档,并尝试了
conn = pyodbc.connect(\"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c:\\\\DB.accdb;\")
-相同的错误。这真的很奇怪,因为pyodbc.dataSources()表明我有此提供程序。 ADD2: 为了通过使用OLE DB进行连接,我尝试了win32com.client用法(例如此处),但未成功。似乎不可能,没有任何效果。     
已邀请:
         尝试使用类似以下的内容,而不要使用与OLeDb相同的字符串:
\"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\DB.accdb;\"
您可能无法直接从x64 Python应用程序与驱动程序对话:Access 2007及其ACE驱动程序仅是32位。 相反,请获取用于Access 2010的ACE x64驱动程序,但请注意,如果您已经安装了Access或32bit的ACE驱动程序,它将无法正常工作。 如果您希望您的应用程序可以在其他系统上运行,则我会坚持使用32位版本的Python和ACE驱动程序:不建议您混合使用x64和x86版本的Office工具和驱动程序,您最终可能会得到如果有很多问题。 如果问题不是32/64位混合,那么也许这个问题具有您想要的答案。     

要回复问题请先登录注册