关联Microsoft Access数据库中On-Timer handler无法运行的解决办法咨询
解决思路与方法
独立VBS脚本触发关闭逻辑
写一个单独的VBS脚本,直接调用Database B里的关闭函数,再通过Windows任务计划定时执行。示例代码:Set objAccess = CreateObject("Access.Application") objAccess.OpenCurrentDatabase("你的Database B完整路径.accdb") objAccess.Run "你封装好的关闭函数名" ' 比如把原来Timer事件里的代码封装成CloseDatabase() objAccess.Quit Set objAccess = Nothing执行前要确认此时没有其他用户直接打开B编辑数据,避免冲突。
让Database B后台静默运行
在B里新建一个隐藏窗体(设置Visible属性为False),把原来的自动关闭代码移到这个窗体的Timer事件里。然后设置B的启动选项:指定启动时打开这个隐藏窗体,关闭数据库窗口显示。最后用任务计划定时启动B,启动时可以加/runtime参数让它在后台静默运行。这样即使A在用链接表,B的后台进程会正常触发Timer事件执行关闭。强制关闭对应Access进程(慎用)
如果前两种方法不适用,可通过任务计划执行taskkill命令强制关闭关联B的Access进程,命令示例:taskkill /fi "WINDOWTITLE eq Microsoft Access - DatabaseB.accdb" /f这个方法比较粗暴,可能丢失未保存数据,只适合确定夜间无人操作B的场景。
内容的提问来源于stack exchange,提问作者Jacob
相关产品推荐
相关产品推荐

