文档章节

Python使用win32com操控Access

Ev4n
 Ev4n
发布于 2016/08/16 17:58
字数 617
阅读 474
收藏 0

网上的教程很多啊,有必要写个这个么?我也这么期待着,可是,这个过程没那么简单。

为什么选择python来操控Access数据库呢?因为我电脑上没有.net啊!加之自己对python的强大功能相当的自信,就顺其然的选择了。从前使用python操作postgresql也没什么难处啊,于是就信誓旦旦的开始了。

这里就是简单的操作过程。姑且放下相关函数,来准备工具吧。

步骤一:选择三方库。

python肯定没有自带的函数,但是可以拓展嘛。网上的有推荐win32com,看起来很符合要求,虽然我从没有接触过。win32com只能从sourceforge  这里选择对应的包,但是,但是具体的位数呢?是32位还是64呢?根据我自己的python来吧,64位的电脑当然要安装64位的python啦,于是就下来64位的。(实际上最开始安装32位的是在注册表中找不到我的python)

步骤二:安装Microsoft Access Database Engine 2010 Redistributable

这个官方有对应的免费下载,可是,可是还是要选择64啊,嗯,一朝64,总是选择64位吧。下载后安装,一切顺利。

步骤三:写代码。

Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import win32com.client as client
>>> conn=client.Dispatch('ADODB.Connection')
>>> DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=e:\\aaa.mdb;'
>>> conn.Open(DSN)

然后,就这玩意了。

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    conn.Open(DSN)
  File "<COMObject ADODB.Connection>", line 3, in Open
  File "D:\python27\lib\site-packages\win32com\client\dynamic.py", line 287, in _ApplyTypes_
    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
com_error: (-2147352567, '\xb7\xa2\xc9\xfa\xd2\xe2\xcd\xe2\xa1\xa3', (0, u'ADODB.Connection', u'\u672a\u627e\u5230\u63d0\u4f9b\u7a0b\u5e8f\u3002\u8be5\u7a0b\u5e8f\u53ef\u80fd\u672a\u6b63\u786e\u5b89\u88c5\u3002', u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582), None)

先看看那一段unicode是什么吧。发生意外,ADODB.Connection 未找到提供程序。该程序可能未正确安装。这个问题在百度里很多啊,但是很多都是IIS中连接Access数据库时,这个我确实没辙了。

这位仁兄提到各种位数的问题,我于是测试了 Engine 32位的,但是安装之前要卸掉刚安好的64位,做吧。结果没有变化。这里的论坛有过相关话题,但是还是没有解决。

最后吧,还是全换成了32位的了,可以了。

坑!

© 著作权归作者所有

共有 人打赏支持
Ev4n
粉丝 5
博文 27
码字总数 14699
作品 0
成都
私信 提问
python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ** 一、安装 ** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了。。。) 下载地址:http://sourceforge....

彼得
2014/07/21
0
3
Python文本数据互相转换(pandas and win32com)

(工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同pywin32库。 pand...

James·Joshua
08/16
0
0
python使用win32com的心得

python可以使用一个第三方库叫做win32com达到操作com的目的,我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎封装了所有python下面的win32相关的操作,例如win32api,...

zxcholmes
2015/07/28
0
0
PyInstaller 2.0 发布,Python 应用打包工具

PyInstaller 2.0 发布了,PyInstaller 是一个用来将 Python 程序打包成一个独立可执行软件包,支持 Windows、Linux 和 Mac OS X。 该版本要求至少 Python 2.3,增加对 AIX 和 Solaris 平台的...

oschina
2012/08/15
3.7K
6
用python的win32com打开excel并没有自动加载外部的宏文件,大神们帮忙看看

大神们,小弟遇到一个问题 我在excel的加载项中添加了一个Excel加载,宏report.xlam,这样手动打开任何excel文件时这个宏都会自动加载,并自动执行里面的Workbook_Open函数,从而在打开的exc...

bobo0103
2015/10/13
170
0

没有更多内容

加载失败,请刷新页面

加载更多

selenium 结合 docker 构建分布式测试环境

随着自动化测试越学越深,深深觉得有太多的东西需要总结。 1.记录下学习中遇到的坑,当做学习笔记。 2.有前人路过看到文章中比较落后的做法,请务必一定要指教。(因为是初学者视角,很多东西...

呐呐丶嘿
10分钟前
1
0
PostgreSQL 安装启动使用一条龙教程——Ubuntu 16.04

今天想尝试下 PostgreSQL,分享一下在 Ubuntu 16.04 下安装启动使用 PostgreSQL 一条龙方法。 添加第三方 apt 仓库: sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/a...

宇润
12分钟前
2
0
对于json文件的读写操作

对json文件的读操作 返回的一个列表,里面是多个字典 def read_json(self,jsonname): with open(r"./{}.json".format(jsonname),"r") as json_f: text_list = json......

鹏灬
14分钟前
2
0
Date-Time API简介

  Date-Time API简介      在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类。但使用Date类却有诸多的弊端,如: java.util.Date 是非线程安全的,所有的日期...

SEOwhywhy
14分钟前
2
0
实体类生成对应的建表语句

通过实体类生成对应的建表语句 用java代码根据实体类自动生成对应的建表语句或生成某个包下的所有类的建表语句 根据实体类反射生成SQL java 根据实体对象生成 增删改的SQL语句 ModelToSQL...

miaojiangmin
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部