学习Python的过程中,我们会遇到Access的读写问题,这时我们可以利用win32.client模块的COM组件访问功能,通过ADODB操作Access的文件。

需要下载安装pywin32与AccessDatabaseEngine.exe
pywin32下载地址:https://www./softs/695840.html
AccessDatabaseEngine.exe下载 https://www./softs/291508.html
64位下载:https://www./softs/291504.html
1、导入模块
import win32com.client
2、建立数据库连接
conn = win32com.client.Dispatch(r"ADODB.Connection") DSN = 'PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = test.mdb' conn.Open(DSN)
3、打开一个记录集
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs_name = 'MEETING_PAPER_INFO'
rs.Open('[' + rs_name + ']', conn, 1, 3)
4、对记录集操作
rs.AddNew() #添加一条新记录 rs.Fields.Item(0).Value = "data" #新记录的第一个记录为"data" rs.Update() #更新
5、用SQL语句来增、删、改数据
# 增
sql = "Insert Into [rs_name] (id, innerserial, mid) Values ('002133800088980002', 2, '21338')" #sql语句
conn.Execute(sql) #执行sql语句
# 删
sql = "Delete * FROM " + rs_name + " where innerserial = 2"
conn.Execute(sql)
# 改
sql = "Update " + rs_name + " Set mid = 2016 where innerserial = 3"
conn.Execute(sql)
6、遍历记录
rs.MoveFirst() #光标移到首条记录 count = 0 while True: if rs.EOF: break else: for i in range(rs.Fields.Count): #字段名:字段内容 print(rs.Fields[i].Name, ":", rs.Fields[i].Value) count += 1 rs.MoveNext()
7、关闭数据库
conn.close()
补充
如果是python3好像需要用到pypyodbc
# 话不多说,码上见分晓!
使用模块: pypyodbc
例子和安装详见:
https://github.com/jiangwen365/pypyodbc/
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "loki"
import time
import pypyodbc as mdb
# 连接mdb文件
connStr = (r'Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\MDB_demo\demo.mdb;'
r'Database=bill;'
)
conn = mdb.win_connect_mdb(connStr)
# connStr = (
# r'Driver={SQL Sever};'
# r'Server=sqlserver;'
# r'Database=bill;'
# r'UID=sa;'
# r'PWD=passwd'
# )
#
# conn = mdb.connect(connStr)
# 创建游标
cur = conn.cursor()
cur.execute('SELECT * FROM bill;')
for col in cur.description:
# 展示行描述
print(col[0], col[1])
result = cur.fetchall()
for row in result:
# 展示个字段的值
print(row)
print(row[1], row[2]
官方给的例子mdb
# Microsoft Access DB
import pypyodbc
connection = pypyodbc.win_create_mdb('D:\\database.mdb')
SQL = 'CREATE TABLE saleout (id COUNTER PRIMARY KEY,product_name VARCHAR(25));'
connection.cursor().execute(SQL)
connection.close()
#SQL Server 2000/2005/2008 (and probably 2012 and 2014)
#SQL Server 2000/2005/2008 (and probably 2012 and 2014)
import pypyodbc as pyodbc # you could alias it to existing pyodbc code (not every code is compatible)
db_host = 'serverhost'
db_name = 'database'
db_user = 'username'
db_password = 'password'
connection_string = 'Driver={SQL Server};Server=' + db_host + ';Database=' + db_name + ';UID=' + db_user + ';PWD=' + db_password + ';'
db = pyodbc.connect(connection_string)
SQL = 'CREATE TABLE saleout (id COUNTER PRIMARY KEY,product_name VARCHAR(25));'
db.cursor().execute(SQL)
# Doing a simple SELECT query
connStr = (
r'Driver={SQL Server};'
r'Server=sqlserver;'
#r'Server=127.0.0.1,52865;' +
#r'Server=(local)\SQLEXPRESS;'
r'Database=adventureworks;'
#r'Trusted_Connection=Yes;'
r'UID=sa;'
r'PWD=sapassword;'
)
db = pypyodbc.connect(connStr)
cursor = db.cursor()
# Sample with just a raw query:
cursor.execute("select client_name, client_lastname, [phone number] from Clients where client_id like '01-01-00%'")
# Using parameters (IMPORTANT: YOU SHOULD USE TUPLE TO PASS PARAMETERS)
# Python note: a tuple with just one element must have a trailing comma, otherwise is just a enclosed variable
cursor.execute("select client_name, client_lastname, [phone number] "
"from Clients where client_id like ?", ('01-01-00%', ))
# Sample, passing more than one parameter
cursor.execute("select client_name, client_lastname, [phone number] "
"from Clients where client_id like ? and client_age < ?", ('01-01-00%', 28))
# Method 1, simple reading using cursor
while True:
row = cursor.fetchone()
if not row:
break
print("Client Full Name (phone number): ", row['client_name'] + ' ' + row['client_lastname'] + '(' + row['phone number'] + ')')
# Method 2, we obtain dict's all records are loaded at the same time in memory (easy and verbose, but just use it with a few records or your app will consume a lot of memory), was tested in a modern computer with about 1000 - 3000 records just fine...
import pprint; pp = pprint.PrettyPrinter(indent=4)
columns = [column[0] for column in cursor.description]
for row in cursor.fetchall():
pp.pprint(dict(zip(columns, row)))
# Method 3, we obtain a list of dict's (represents the entire query)
query_results = [dict(zip([column[0] for column in cursor.description], row)) for row in cursor.fetchall()]
pp.pprint(query_results)
# When cursor was used must be closed, if you will not use again the db connection must be closed too.
cursor.close()
db.close()
How to use it without install (the latest version from here)
Just copy the latest pypyodbc.py downloaded from this repository on your project folder and import the module.
Install
If you have pip available (keep in mind that the version on pypi may be old):
pip install pypyodbc
Or get the latest pypyodbc.py script from GitHub (Main Development site)
python setup.py install
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# python
# 操作access
# access
# 读写
# python读写access
# Python操作Access数据库基本步骤分析
# Python3.7 pyodbc完美配置访问access数据库
# python连接access数据库两种方式总结
# 记录集
# 第一个
# 下载地址
# 见分晓
# 遍历
# 多说
# 移到
# 可以利用
# 过程中
# 首条
# 字段名
# coding
# pypyodbc
# utf
# env
# usr
# bin
# github
# True
相关文章:
如何在橙子建站上传落地页?操作指南详解
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何高效生成建站之星成品网站源码?
如何用腾讯建站主机快速创建免费网站?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何快速重置建站主机并恢复默认配置?
如何用PHP工具快速搭建高效网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
,柠檬视频怎样兑换vip?
青岛网站建设如何选择本地服务器?
建站之星Pro快速搭建教程:模板选择与功能配置指南
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
建站org新手必看:2024最新搭建流程与模板选择技巧
建站之星收费标准详解:套餐费用及年费价格表一览
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何在搬瓦工VPS快速搭建网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
名字制作网站免费,所有小说网站的名字?
制作营销网站公司,淘特是干什么用的?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站主机如何选?性能与价格怎样平衡?
香港服务器如何优化才能显著提升网站加载速度?
建站之星安装后如何自定义网站颜色与字体?
建站之星备案是否影响网站上线时间?
建站之星如何助力网站排名飙升?揭秘高效技巧
建站主机与虚拟主机有何区别?如何选择最优方案?
如何快速辨别茅台真假?关键步骤解析
家具网站制作软件,家具厂怎么跑业务?
如何选择CMS系统实现快速建站与SEO优化?
已有域名和空间如何搭建网站?
如何选购建站域名与空间?自助平台全解析
教学网站制作软件,学习*后期制作的网站有哪些?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
C#如何使用XPathNavigator高效查询XML
如何续费美橙建站之星域名及服务?
如何通过老薛主机一键快速建站?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何通过WDCP绑定主域名及创建子域名站点?
高端企业智能建站程序:SEO优化与响应式模板定制开发
javascript中对象的定义、使用以及对象和原型链操作小结
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何快速搭建高效服务器建站系统?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何快速搭建高效WAP手机网站吸引移动用户?
香港服务器选型指南:免备案配置与高效建站方案解析
*请认真填写需求信息,我们会在24小时内与您取得联系。