我想通过pypyodbc连接Access和Python,但是有一个错误。有趣的是,在家里它在另一台计算机上工作时没有。我通过文件DSN(Microsoft Access驱动程序) - 'DRIVER={Driver do Microsoft Access (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/PITL;DBQ=C:/PITL/PITL.mdb;'
为此计算机创建了一个新的连接链接,但没有。
from tkinter import *
import pypyodbc
import ctypes
#Create connection
con = pypyodbc.connect('DRIVER={Driver do Microsoft Access (*.mdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/PITL;DBQ=C:/PITL/PITL.mdb;')
cursor = con.cursor ()
form = Tk ()
form.title ("Main")
form.geometry ('400x400')
def Add ():
cursor.execute ("SELECT `Law_ID`, `Law_name`, `Fine` FROM Laws WHERE Fine = '2'")
for row in cursor:
print (row)
Button=Button(form, text = 'PUSH ME', command = Add)
Button.pack ()
form.mainloop ()
con.commit ()
cursor.close ()
con.close ()
回溯(最近一次调用最后一次):文件“C:\ PITL \ SHOW DATA.py”,行 6,在 con = pypyodbc.connect('DRIVER = {Driver do Microsoft Access(* .mdb)}; UID = admin; UserCommitSync = Yes; Threads = 3; SafeTransactions = 0; PageTimeout = 5; MaxScanRows = 8; MaxBufferSize = 2048; FIL = {MS Access}; DriverId = 25; DefaultDir = C:/ PITL; DBQ = C:/PITL/PITL.mdb;')文件 “C:\ Python34 \ LIB \站点包\ pypyodbc-1.3.4-py3.4.egg \ pypyodbc.py” 第2454行, init self.connect(connectString,autocommit,ansi,timeout,unicode_results,readonly)文件 “C:\ Python34 \ LIB \站点包\ pypyodbc-1.3.4-py3.4.egg \ pypyodbc.py” 第2507行,连接中 check_success(self,ret)文件“C:\ Python34 \ lib \ site-packages \ pypyodbc-1.3.4-py3.4.egg \ pypyodbc.py”, 第1009行,在check_success中 ctrl_err(SQL_HANDLE_DBC,ODBC_obj.dbc_h,ret,ODBC_obj.ansi)文件 “C:\ Python34 \ LIB \站点包\ pypyodbc-1.3.4-py3.4.egg \ pypyodbc.py” 第985行,在ctrl_err中 raise Error(state,err_text)pypyodbc.Error:('IM002','[IM002] [Microsoft] [ДиспетчердрайверовODBC]Источникданныхненайденине указандрайвер,используемыйпоумолчанию')