iT邦幫忙

0

python 連接 Microsoft Access (已解決)

各位大大好,小弟目前在使用python 連接 Access資料庫,
查了一些資料使用了 python的pyodbc套件,

使用方法如下:

conString = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=檔案位置.accdb;'
conn = pyodbc.connect(conString)
cur = conn.cursor()
cur.execute('SELECT * FROM  Bank')

出現 error: ('IM002', '[IM002] [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式 (0) (SQLDriverConnect)')錯誤

找了一下問題所在如下:

import pyodbc
print(pyodbc.drivers())
// 列印出來的結果只有以下4個
// 1. SQL Server
// 2. SQL Server Native Client 11.0
// 3. ODBC Driver 13 for SQL Server
// 4. ODBC Driver 17 for SQL Server
  • 發現此處沒有access的Driver,試著找出解決方法但無法...

請教各位大大,以上狀況

  1. 我缺少安裝了甚麼? 還是我該做什麼處理?
  2. 還有其他方式能夠存取.mdb檔案?

---------------------------------以解決--------------------------------------

主要問題如上所述,為driver未安裝啟用,

  • 解決方法:
  1. 如 paicheng0111 大大留言所示
    32 bit Python + 32 bit Access + 32 bit Access Database engine
    64 bit Python + 64 bit Access + 64 bit Access Database engine

  2. 如 rogeryao 大大所提供資源下載driver

感謝各位大大!!

32 bit Python + 32 bit Access + 32 bit Access Database engine
64 bit Python + 64 bit Access + 64 bit Access Database engine
感謝大大,小弟搜索一下!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
mackuo
iT邦研究生 2 級 ‧ 2021-03-30 08:58:38

小弟之前也爬文過,現在放部落格:

第一種方式:
http://icekuo.blogspot.com/2020/01/python-pyodbc-microsoft-access.html

第二種方式:
http://icekuo.blogspot.com/2020/01/python-pypyodbc-microsoft-access.html

但後來如果要處理這類的問題,還是先在Access中將資料檔轉成csv匯出,
再用Python來讀檔比較ok。

回大大,感謝您的分享!!
因為目前的需求是需要讀寫,
請問您後續處理csv的方式,
將資料檔轉成csv後,還能轉回mbd檔案嗎?

mackuo iT邦研究生 2 級 ‧ 2021-03-30 11:21:43 檢舉

csv處理完後不管是csv或是excel檔,當然還可以再餵進去access。
但如果您的資料庫都是用access來管的話,那直接讀寫access的table可能比較方便。

回大大,了解!!
感謝您!!

我要發表回答

立即登入回答