python 操作 access 2016报 [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for...

这两天开发python 访问microsoft access 2016时,无论用pypyodbc,还是用pyodbc都连接不上access 2016数据库,查了一堆资料,尝试重装AccessDatabaseEngine引擎,无论是安装32位的,还是64位的,不断的在windows 内修改odbc32还是64位数据源,都无法解决问题。但突然发现,如果用access 2016新建的一个数据库,就可以connect,想到数据库可能有哪儿不兼容导致的,顺着这个思路,终于解决该问题,前后耗了将近一周的时间,记录在这儿,供大家解决类似问题时参考。

一、开发环境

windows 8 64位操作系统,pyghon 3.8.6, microsoft access 2016 32位,安装的AccessDatabaseEngine 32位访问引擎。连接的数据库在access 2016内能正常打开,但在python内无法建立连接,代码如下:

import pypyodbcstr = r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\test\old.accdb;'
db=pypyodbc.connect(str)                 # 打开数据库连接cursor = db.cursor()
SQL = "SELECT top 1 * from users;"
for row in cursor.execute(SQL):print(row)
cursor.close()

运行后,一直报

Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x1c44 Thread 0x1d50 DBC 0x1c6c5f3c Jet'.")

二、在百度上,一顿操作猛如虎,绐终解决不了问题,一直怀疑是不是access 2016或python 的pypyodbc或pyodbc有问题。

三、偶而用Access 2016建了一个新数据库,唉,用上面的代码就可以正常连接,思路有了,感觉可能是这个将要打开的数据库有问题。

四、尝试将原数据库的表一个一个删除,不断测试,当然,删除表后要压缩下数据库,删除一些无用的空间(这步很重要,不做这步有可能还是打不开)。终于发现是某个表内用了一个"大型页码"的数据类型,将该类型换成其它数据类型,就可以正常打开了。就是这样一个小小问题,卡了我将近一周时间。

到现在我也没有查到这个"大型页码"数据类型是怎么一回事。

如与我一样有碰到上面问题,可以供大家一点参考。

python 操作 access 2016报 [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open相关推荐

  1. [Microsoft][ODBC SQL Server Driver][SQL Server]数据库‘XXXXXX‘的事务日志已满。解决办法!

    下午上班,关务人员反应报关软件无法使用,截图过来看了下,报错提示如下: [Microsoft][ODBC SQL Server Driver][SQL Server]数据库'XXXXXX'的事务日志已 ...

  2. [Microsoft][ODBC SQL Server Driver]TDS 缓冲区长度过大

    [Microsoft][ODBC SQL Server Driver]TDS 缓冲区长度过大 当未能返回立即慢速网络传输, 数据由于 ODBC 驱动程序的 Net-Library 调用驱动程序切换到异 ...

  3. [Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.

    Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e57' [Microsoft][ODBC SQL Server Driver][SQL Ser ...

  4. 用eclipse连接数据库捕获java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数据。

    用eclipse连接数据库捕获异常显示java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]将截断字符串或二进制数 ...

  5. python连接sqlServer,报错:[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

    1. 在jupyter notebook连接sqlServer报错 报错信息:InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] ...

  6. Python操作文件,报FileNotFoundError: [Error 2] No such file or directory错误

    python操作文件时,报No such file or directory错误. 多次检查目录.文件名.语法都是对的. 折腾一番后,打开文件所在文件夹,并显示所有文件后缀名,才发现此文件并没有txt ...

  7. python操作excel 2016

    Python操作 Excel97-2003  一般使用 xlwt 模块,如果要操作(.xlsx) 的版本,需要使用 openpyxl 模块 下面示例,打印9X9乘法表 import openpyxlw ...

  8. python安装依赖失败_python执行安装第三方依赖numpy失败:error: Unable to find vcvarsall.bat...

    一台计算机上同时安装了python2.7和python3.7. 现在为python2.7安装numpy包. 失败:error: Unable to find vcvarsall.bat ======= ...

  9. [Microsoft][ODBC SQL Server Driver][SQl Server]参数数据类型 text 对于 replace 函数的参数 1 无效。...

    说到数据库中文本的替换,一般人首先想到的是Replace函数: update Table set Column=Replace(Column,'oldkeyword','newkeyword') 不过 ...

最新文章

  1. C# 基础知识 (三).主子对话框数值传递
  2. android开发分页查询,Android开发中实现分页效果的简单步骤
  3. 微信小程序开发教程第五章:微信小程序名片夹详情页开发
  4. pb5.0-pb10.0各版本高速下载
  5. 毕设开题报告重要内容
  6. 测试路由器丢包的软件,如何判断路由是否丢包以及丢包的原因和解决方法
  7. 几种常见简易的恒流源电路
  8. QQ邮箱搜索器 邮箱地址批量搜索
  9. egret eui.Button改变文本、背景色及是否可点击
  10. Mac苹果移动硬盘数据丢失怎么恢复?
  11. 5G消息RCS、chatboot
  12. pyinstaller打包exe加入版本和版权信息
  13. 二阶矩过程、平稳过程和随机分析
  14. 学编程用什么系统好?
  15. VUE plugin 插件
  16. 欲望、外界、标签、天才、时间、经历、人生目标、后悔、和现实。转自特种兵—AK47
  17. Oracle ASM磁盘组冗余机制(Failure group)
  18. 全球与中国PH和ORP通用分析仪市场深度研究分析报告
  19. Java:从lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量
  20. 用python打开浏览器的四种方法

热门文章

  1. oracle重做日志文件重命名,初识Oracle重做日志文件
  2. 解读阿里巴巴集团发布的《2009年网商发展研究报告》
  3. iOS 逆向-非越狱手机Hook App
  4. 科学计数法转换成数字
  5. Java解析XML文件的方式
  6. 元亨信科技可定制开发语音识别应用方案
  7. 【转】如何保护自己的QQ号
  8. 每周读书#10 - 不放过路上的风景
  9. 网页前端知识汇总(一)——CSS如何为网页图片设置圆角效果
  10. c语言程序汇总,C语言程序设计经典题目大汇总