Access 2013能否调度作业?如何实现定时邮件提醒?
Access 2013 定时执行到期邮件提醒方案
首先直接说结论:仅靠Access本身无法实现定时自动任务,因为Access是桌面应用,只有在数据库被打开的状态下才能运行VBA代码。不过结合Windows自带的工具,我们可以轻松实现你要的每日8点自动检查并发送提醒的需求,完全不需要额外软件,符合你只能用Access/Office2013的限制。
下面是具体的实现步骤:
1. 改造你的Access数据库,让它打开即执行任务并自动关闭
你已经有了发邮件的VBA脚本,现在需要让数据库启动时自动触发这个脚本,执行完成后自动退出:
- 方法一:使用AutoExec宏
创建一个名为AutoExec的宏(Access会在数据库打开时自动运行这个宏),在宏里添加「RunCode」操作,选择你的发邮件VBA子程序(比如SendDueReminders())。 - 方法二:用数据库打开事件
打开数据库的「数据库工具」选项卡,点击「Visual Basic」,在左侧项目窗口找到ThisDatabase,双击打开它,在On Open事件中写入:Private Sub Database_Open() ' 调用你的发邮件子程序 SendDueReminders ' 执行完成后自动关闭Access DoCmd.Quit acQuitSaveNone End Sub - 关键设置:把数据库所在文件夹添加到Access的「受信任位置」,否则打开时会阻止宏/VBA运行。操作路径:Access选项 → 信任中心 → 信任中心设置 → 受信任位置 → 添加新位置。
2. 用Windows任务计划程序设置每日定时触发
Windows自带的任务计划程序可以帮你在指定时间自动打开Access数据库,从而触发我们刚才设置的自动任务:
- 打开「任务计划程序」(可以在开始菜单搜索找到),点击「创建基本任务」。
- 给任务命名(比如「到期邮件每日提醒」),点击下一步。
- 触发器选择「每日」,设置时间为8点,点击下一步。
- 操作选择「启动程序」,点击下一步。
- 在「程序或脚本」中填入Access的安装路径,Office2013的默认路径是:
C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE - 在「添加参数(可选)」中填入你的数据库文件的完整路径,注意要加引号(比如
"D:\Projects\YourDatabase.accdb"),点击下一步。 - 勾选「当单击完成时,打开此任务的属性对话框」,点击完成。在属性窗口中,切换到「设置」选项卡,勾选「唤醒计算机运行此任务」(如果电脑可能休眠),还可以设置「不管用户是否登录都运行」(需要管理员权限)。
一些注意事项
- 确保电脑在每日8点处于开机状态(如果是笔记本,要设置电源选项不自动休眠)。
- 测试时可以手动运行任务计划里的任务,验证是否能正常打开Access、发送邮件并自动关闭。
- 如果你的发邮件VBA用的是Outlook对象,可能会弹出安全提示,建议改用CDO邮件方式发送,或者在Outlook的信任中心设置允许程序访问邮件(Office2013中:Outlook选项 → 信任中心 → 信任中心设置 → 程序访问安全性 → 选择「从不警告我可疑活动」)。
内容的提问来源于stack exchange,提问作者user1982778
相关产品推荐
相关产品推荐

