我正在尝试获取一个 Windows 计划任务来打开 MS Access DB (.mdb),该数据库具有一个 AutoExec 宏,该宏运行一些查询,然后将其导出到 .csv 以替换已存在的 .csv 文件。
从命令提示符我可以运行:
"C:\Program Files (x86)\Microsoft Office\root\Office16\MSACCESS.EXE" "/Path to my Access DB"
一切都很完美。 Access 将打开,运行查询,并将 .csv 替换为查询中的新数据。
当我尝试使用计划任务访问执行此操作时,只会删除 .csv 文件而不替换它,并返回错误“操作员或管理员已拒绝请求”。
有什么想法吗?我一直在寻找一种快速获取数据的方法,但我觉得编写一些 python 来连接到 Access 可能会更好。
本周我又回到了这个问题并终于找到了解决方案。
问题归结为计划任务。这是本地计算机权限问题,并使用正确的域运行任务解决了这个问题。
首先要修复本地计算机权限,我必须确保运行任务的用户具有“作为批处理作业登录”权限。 位于 控制面板 -> 管理工具 -> 本地安全策略\本地策略\用户权限分配 -> “作为批处理作业登录”
其次,因为我在域中,所以计划任务必须由域用户显式创建。在创建任务期间,我必须手动查找域上的用户,并删除任务计划创建向导自动填充的用户。
我有一个 MS Access 应用程序,它使用 /x 参数通过任务计划程序运行宏。该宏正在调用公共函数,这是从 MS Access 外部调用代码的唯一方法。该作业将导入 CSV 文件,并且可以通过命令提示符或批处理文件正常工作。但任务计划程序不会运行它。我总是会遇到这个问题!!
Microsoft Excel 无法访问文件“C:\Development\MSAccess\Import\ImportFile.csv”。可能的原因有以下几个:
• 文件名或路径不存在。 • 该文件正在被另一个程序使用。 • 您尝试保存的工作簿与当前打开的工作簿同名。
所以我的解决方案是下载这个:https://www.splinterware.com/products/scheduler.html
现在可以使用了!如果我必须在某个时候支付费用,那么对于我花了几天时间试图找出任务计划程序无法正常运行作业的原因来说,30 美元是非常值得的!