[英]Schedule MS Access Module
MS Access计划模块内部是否有可能每天在特定时间运行? 如果不可能的话,安排每天在MS Access中运行模块的最佳和最简便的方法是什么?
脚本用于将表格从MS Access导出到xls文件,如下所示
Dim outputFileName As String
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "bolnickiracun", outputFileName, True
2解决方案
此解决方案要求您始终让Access Application打开。
建立表格
在表单事件中:
将计时器间隔设置为60000
进行一个On Timer
过程,在其中调用模块的子模块
该表格应打开以触发计时器。 您可以在选项/当前数据库/显示表单中启动应用程序时将其打开
我认为这种解决方案更好,因为它不需要运行MS Access应用程序。
在Access应用程序中:
创建一个新的宏并将其命名为“ AutoExec”,以便在应用程序启动时将被触发。
在设计视图中打开宏,然后添加一个RunCode类型的新操作,在Function Name下,添加模块的主要子或函数。
在模块的子代码末尾添加此代码,以在执行代码后关闭MS Access应用程序: docmd.Quit
在Windows中:
在任何地方创建批处理文件(名为anything.bat
新文件)
编辑您的批处理文件并将此代码添加到其中(当然,相应地,请输入适应路径/ accdb名称)
start "" "C:\\pathToTheApplication\\MSAccessAppName.accdb" Exit
在Windows Task Scheduler(开始菜单并搜索Task Scheduler )中创建一个任务,该任务将在需要时触发批处理文件。 Google如何做到这一点,或者只是在这里寻找一些想法
使用Windows Task Scheduler打开Access。
http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html
dim accessApp
set accessApp = createObject("Access.Application")
accessApp.visible = true
accessApp.UserControl = true
accessApp.OpenCurrentDataBase("C:\path.accdb")
accessApp.Run "myLinker"
同样,一旦通过任务计划程序打开Access,您就可以控制其他事件。
打开
打开发生在Load之前,允许您取消使其不打开。 它还允许访问OpenArgs。 如果您的表单需要用户输入,这将很有帮助。 如果未提供,则可以取消Form.Open或提示用户输入所需的值。
Private Sub Form_Open(Cancel As Integer)
If "" & OpenArgs = "" Then
Cancel = True
Msgbox "Open Arguments are required"
End If
End Sub
加载
加载发生在Open之后,并且缺少Open提供的任何控件。
Private Sub Form_Load()
Me.Caption = Date
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.