微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 Python win32com 在 MS Access 中执行 sql 查询

如何解决通过 Python win32com 在 MS Access 中执行 sql 查询

我想使用 Python 将数据提取或存储到 MS Access 中。我的 Python 是 64 位,Access 是 32 位(并且无法改变这种情况)。所以我需要使用win32com libary,而不是pyodbc。

我在执行以下代码时遇到以下错误并出现错误

import win32com.client
COM = win32com.client.dispatch('Access.Application')
path_database = r"C:/..../my_db.accdb"

COM.OpenCurrentDatabase(str(path_database))

COM.CurrentDb().OpenRecordset("select * from Table1")  # This works

COM.CurrentDb().Execute("delete * from Table1")  # This doesn't work
COM.CurrentDb().Execute("select * from Table1")  # This doesn't work

显示如下错误

com_error: (-2147352567,'Exception occurred.',(0,'DAO.Database','Cannot execute a select query.','jeterr40.chm',5003065,-2146825223),None)

com_error: (-2147352567,'Could not delete from specified tables.',5003086,-2146825202),None)

我实际上可以通过“OpenRecordset”方法提取查看数据,但我需要运行不同的查询,因此需要“Execute”方法。但它不起作用。

我尝试了以下代码

COM.visible = 1

并且访问数据库以只读模式打开。访问是否有可能在我的后台(当我执行 COM.OpenCurrentDatabase(str(path_database)) 时)也以只读模式运行并导致此问题?

或者有人能给我一些提示吗? 谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。