通过 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 (将#修改为@)