是否可以在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
答案 0 :(得分:4)
2解决方案
此解决方案要求您始终打开Access应用程序。
创建表单
在表单事件中:
将定时器间隔设置为60000
制作On Timer
程序,在其中调用模块的子
表格应该打开以触发计时器。当应用程序以选项/当前数据库/显示形式
启动时,您可以将其打开我认为此解决方案更好,因为它不需要MS访问应用程序运行。
在Access应用程序中:
创建一个新宏并将其命名为“AutoExec”,以便在应用程序启动时触发它。
在设计视图中打开宏并添加 RunCode 类型的新操作,在功能名称下添加模块的主要子功能。
在模块的子结尾处,添加此项以在代码执行后关闭MS访问应用程序:docmd.Quit
在Windows中:
在任何地方创建批处理文件(名为anything.bat
的新文件)
编辑批处理文件并将此代码添加到其中(当然,相应地调整路径/ accdb名称)
start "" "C:\pathToTheApplication\MSAccessAppName.accdb"
Exit
在Windows任务计划程序(开始菜单并搜索任务计划程序)中创建一个任务,该任务将在您需要时触发批处理文件。谷歌如何做到这一点或只是看here一些想法
答案 1 :(得分:0)
使用Windows任务计划程序打开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后,您可以控制其他事件。
打开强>
在加载之前打开并允许您取消,因此它不会打开。它还允许访问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