【问题标题】:Python comtypes with MS Access [duplicate]Python comtypes 与 MS Access [重复]
【发布时间】:2017-04-06 01:47:38
【问题描述】:

我有以下 Python 2.7 代码,可以在 Windows 7 机器上完美运行:

from comtypes.client import CreateObject
app = CreateObject('Access.Application')
from comtypes.gen import Access
DBEngine = app.DBEngine

在安装了 MS Access 365(最新版本)的另外两个(Windows 7 和 Windows 10)上,我收到以下错误:

_ctypes.COMError: (-2147312566, 'Erreur lors du chargement de la biblioth\xe8que/DLL du type.', (None, None, None, 0, None))

(意思是“加载DLL库时出错)

我认为这是一个 DLL 问题。重装office也没解决。有没有人已经遇到过这个问题?否则,找到问题/解决问题的一般方法是什么?

【问题讨论】:

标签: python ms-access comtypes


【解决方案1】:

我找到了这个问题的答案:"click-to-run" version of Office 365 在虚拟环境中运行,Python 库可能找不到它。

解决该问题的方法是卸载 Office,然后将其重新安装为正常下载。在我们这样做之后,程序(已经在另一台机器上成功测试过)开始正常工作。

【讨论】:

    【解决方案2】:

    为什么不使用win32com.client 呢? comtypes 不太稳定,对自定义 COM 接口很有用(其他方法是不可能的)。所有的 MS Office 产品都有很好的标准 IDispatch COM 接口,win32com.client 可以访问这些接口。标准 PyWin32 文档描述了 "Excel.Application" 示例,但它也可以轻松应用于 MS Access。

    好在 StackOverflow 上有几个例子:

    Python code for running ms-Access Module Subroutine

    Python Create Access database using win32com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 2019-11-21
      • 2011-10-25
      • 2017-11-15
      • 2020-04-22
      • 2020-07-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多