Python使用pyodbc連接Access數據庫Access2016


--coding:utf-8--

'''Access數據庫連接網上大致有兩種方法,一種是使用pyodbc,另一種是使用win32com.clientI(此處方法一安裝,win32com下次有空再試試)
方法一:
一、安裝第三方庫 pyodbc
Pip install pyodbc

二、檢驗是否可以正常連接數據庫
檢查是否有一個Microsoft Access ODBC驅動程序可用於你的Python環境(在Windows上)的方法:

>>> import pyodbc

>>> [x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

如果你看到一個空列表,那么您正在運行64位Python,並且需要安裝64位版本的“ACE”驅動程序。
如果您只看到['Microsoft Access Driver (*.mdb)']並且需要使用.accdb文件,那么您需要安裝32位版本的“ACE”驅動程序

三、安裝64位的ODBC 驅動器:
1.Microsoft Access 2016 數據庫引擎可再發行程序包
1.Microsoft Access Database Engine 2016 Redistributable

https://www.microsoft.com/en-us/download/details.aspx?id=54920

2.Microsoft Access 2010 數據庫引擎可再發行程序包
2.Microsoft Access Database Engine 2010 Redistributable
https://www.microsoft.com/en-us/download/details.aspx?id=13255
右擊文件accessdatabaseengine_X64.exe(約79.5Mb大小)選擇以管理員模式運行即可安裝【此處使用版本為2016】
[
報錯:Microsoft office Click-to-Run Service (Process ld: 4240)
解決:打開任務管理器,可以看到在后台有一個Microsoft Office Click-to-run(SXS)的進程。
]

注意:

  1. 如何查看Access是32位還是64位
    --->>> 文件 > 賬戶 > 關於Access'''

import pyodbc

python_Access.accdb

DBfile = r"./python_Access.accdb" # 數據庫文件需要帶路徑
print(DBfile)
d = [x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
print(d)

連接數據庫(不需要配置數據源),connect()函數創建並返回一個 Connection 對象

1.創建鏈接

conn = pyodbc.connect(r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + DBfile + ";Uid=;Pwd=;")

cursor()使用該連接創建(並返回)一個游標或類游標的對象

2.創建游標

cursor = conn.cursor()

cnxn = pyodbc.connect('DSN=pyAcc.mdb;PWD=password')

cursor = cnxn.cursor()

print('查詢所有表名')
for table_info in cursor.tables(tableType='TABLE'):
print(table_info.table_name)

3.創建SQL查詢語句

SQL = "SELECT * from datatable;"

SQL = "SELECT * from 銷售出庫詳情 where id<10;"

4.執行查詢

datas = cursor.execute("SELECT * from 銷售出庫詳情") # <pyodbc.Cursor object at 0x000001B851E04BB0>
print(type(datas))
for row in cursor.execute(SQL):
print(row) # <class 'pyodbc.Row'>
print(type(row))
cursor.close()
conn.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM