【问题标题】:Running access macro with python使用 python 运行访问宏
【发布时间】:2021-08-09 15:54:16
【问题描述】:

使用 python 3.9 这是我的 python 代码:

import win32com.client
from win32com.client import Dispatch

strDbName = 'S:\Public\Maintenance\MaintPMprototypev1_4.accdb'
objAccess = Dispatch("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase(strDbName)
objAccess.DoCmd.RunMacro('autoexport')
objAccess.Application.CloseCurrentDatabase()
objAccess.Application.Quit()

老实说,它今天早上工作,但后来我试图用任务计划程序运行它并为任务计划程序创建了一个批处理文件来运行,现在我收到了这个错误:

Traceback (most recent call last):
  File "C:\Users\charlie.zigler\Desktop\autoexport.py", line 10, in <module>
    objAccess.Visible = False
  File "C:\Users\charlie.zigler\AppData\Local\Programs\Python\Python39\lib\site-packages\win32com\client\dynamic.py", line 592, in __setattr__
    self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, 'You entered an expression that has an invalid reference to the property Visible.', 'dao360.chm', 2015567, -2146825833), None)

我已经备份了它,所以我删除了我创建的批处理文件并删除了 py 文件并复制并粘贴了备份的 py 文件并尝试过,但仍然出现相同的错误。有什么想法吗?

【问题讨论】:

  • 你能在python之外运行宏吗? '您输入的表达式对属性 Visible 的引用无效。' 的错误部分是否提供了线索?这可能是 Access 的错误,而不是 python 的错误
  • 重启后它又可以工作了,但是有人对如何让任务计划程序运行它有任何建议吗?
  • 重启后...,你的意思是它只使用任务管理器运行一次?
  • 我的意思是我重新启动了计算机,现在当我运行脚本时它又可以正常工作了。它打开访问,运行宏并按预期关闭。因此,不知何故,当我制作批处理文件以运行 py 脚本并告诉任务计划程序运行它时,它破坏了重新启动 Windows 修复的问题。

标签: python win32com taskmanager


【解决方案1】:

好的,我现在一切正常,所以在重新启动 Windows 后,它允许脚本再次运行,然后我创建了一个仅包含脚本位置的新批处理文件,它运行得很好。

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    相关资源
    最近更新 更多