Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 调度MS访问模块_Vba_Ms Access_Scheduled Tasks - Fatal编程技术网

Vba 调度MS访问模块

Vba 调度MS访问模块,vba,ms-access,scheduled-tasks,Vba,Ms Access,Scheduled Tasks,是否可以在MS访问计划模块中每天在特定时间运行?如果不可能,安排MS Access中的模块每天运行的最佳和最简单的方法是什么 脚本用于将表从MS Access导出到xls文件,如下所示 Dim outputFileName As String outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls" DoCmd.TransferSpreadsheet a

是否可以在MS访问计划模块中每天在特定时间运行?如果不可能,安排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应用程序

创建表单

以事件的形式:

  • 将计时器间隔设置为60000

  • 在定时器上执行
    程序,调用模块的子模块

窗体应打开以触发计时器。当应用程序在选项/当前数据库/显示窗体中启动时,可以将其打开


Windows计划任务 我认为这个解决方案更好,因为它不需要运行MS access应用程序

在Access应用程序中:

  • 创建一个新宏并将其命名为“AutoExec”,以便在应用程序启动时触发该宏

  • 在“设计”视图中打开宏,并在“功能名称”下添加一个类型为“运行代码”的新操作,添加模块的主要子模块或功能

  • 在模块的子模块末尾,添加此项以在执行代码时关闭MS access应用程序:
    docmd.Quit

  • 在Windows中:

  • 在任意位置创建批处理文件(名为
    anything.bat的新文件

  • 编辑批处理文件并将此代码添加到其中(当然要相应地调整路径/accdb名称)

  • 在Windows任务计划程序(开始菜单和搜索任务计划程序)中创建一个任务,该任务将在需要时触发批处理文件。谷歌如何做到这一点或只是寻找一些想法

  • 2解决方案


    窗体计时器 此解决方案要求始终打开Access应用程序

    创建表单

    以事件的形式:

    • 将计时器间隔设置为60000

    • 在定时器上执行
      程序,调用模块的子模块

    窗体应打开以触发计时器。当应用程序在选项/当前数据库/显示窗体中启动时,可以将其打开


    Windows计划任务 我认为这个解决方案更好,因为它不需要运行MS access应用程序

    在Access应用程序中:

  • 创建一个新宏并将其命名为“AutoExec”,以便在应用程序启动时触发该宏

  • 在“设计”视图中打开宏,并在“功能名称”下添加一个类型为“运行代码”的新操作,添加模块的主要子模块或功能

  • 在模块的子模块末尾,添加此项以在执行代码时关闭MS access应用程序:
    docmd.Quit

  • 在Windows中:

  • 在任意位置创建批处理文件(名为
    anything.bat的新文件

  • 编辑批处理文件并将此代码添加到其中(当然要相应地调整路径/accdb名称)

  • 在Windows任务计划程序(开始菜单和搜索任务计划程序)中创建一个任务,该任务将在需要时触发批处理文件。谷歌如何做到这一点或只是寻找一些想法


  • 使用Windows任务计划程序打开Access

    此外,一旦任务计划程序打开了访问权限,您就可以控制其他事件

    打开

    “打开”发生在加载之前,允许您取消,因此它不会打开。它还允许访问OpenArgs。如果您的表单需要用户输入,这将非常有用。如果未提供,您可以取消表单。打开或提示用户输入所需的值

    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
    

    使用Windows任务计划程序打开Access

    此外,一旦任务计划程序打开了访问权限,您就可以控制其他事件

    打开

    “打开”发生在加载之前,允许您取消,因此它不会打开。它还允许访问OpenArgs。如果您的表单需要用户输入,这将非常有用。如果未提供,您可以取消表单。打开或提示用户输入所需的值

    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
    

    如果您是从access中执行操作,请使用窗体计时器并保持数据库打开。@Nathan_Sav的问题是,大约有10个access DB,我想在.xlsx中导出每个DB,然后在MySQL中计划自动导入,我已经完成了这一部分,但我不知道是否可以在access中计划模型,而且数据库非常大,随着所有访问文件的不断打开,RAM将不断被填满检查:@tom preston我尝试了这个解决方案,但对我来说它不起作用,或者我不知道该怎么做,我也不明白/x的含义,以及需要在“这行中添加什么内容”C:\Users\Public\schedTest.accdb/x DoSomethingCreate 1 linked DB,控制它并使用窗体计时器打开相关的access DB并执行它需要的操作。一个包含db名称、执行时间、执行宏等的表。如果您是从access中执行,请使用forms timer并保持db打开。@Nathan_Sav的问题是,大约有10个access db,我想导出.xlsx中的每个db,然后在MySQL中计划自动导入,我已经完成了这一部分,但我不知道是否有可能在Access中调度模型,而且DB相当大,并且随着不断打开所有Access文件,RAM将不断被填满。请检查以下内容:@tom preston我尝试过该解决方案,但对我来说它不起作用,或者我不知道该怎么做,我也不知道/x是什么意思以及需要放置什么“此行中的DoSomething”C:\Users\Public\schedTest.accdb/x DoSomething创建1 li