【问题标题】:Schedule export of Access query安排 Access 查询的导出
【发布时间】:2021-04-09 16:55:20
【问题描述】:

我遇到了与几年前提出的这个问题类似的问题,Scheduled MS Access macro to run query and export to CSV

我按照他的步骤进行了更正,但仍然提示保存现有文件。我遇到的另一个问题是任务没有在任务计划程序中运行,但是当我手动打开 Access 时宏会运行。我觉得在 Access 中创建宏很舒服,但是当我阅读其他关于走 VBA 路线的帖子时迷路了。我是否使用 CurrentDb.Execute “此处的 sql 语句”将宏的 SQL 放入 Access VBA 中,但我仍然需要在任务调度程序中进行调度,对吗?

我对 VBA 非常陌生,甚至从未运行过,尝试输入一些代码但不知所措。

这是一个很好的替代品吗?

    Function AutoExec()  
On Error GoTo AutoExec_Err 
    
    Kill "P:\Jarett\smtest1.csv" 
    DoCmd.OutputTo acOutputQuery, "po_detail3", "MS-DOSText(*.txt)", "P:\Jarett\smtest1.csv", True, "", 1,   acExportQualityPrint  

AutoExec_Exit:  
    Exit Function 

AutoExec_Err: 
    MsgBox Error$  
    Resume AutoExec_Exit  

End Function 

【问题讨论】:

    标签: vba database csv


    【解决方案1】:

    您需要创建导出数据的函数,然后创建一个名为“AutoExec”的宏,以便在打开数据库时调用您的函数。

    This 描述了如何编写函数来将查询结果导出到文本文件。

    如果您需要删除已存在的输出文件,请在运行查询之前立即添加此代码。

    If Dir(Filename) <> "" Then Kill Filename
    

    Access本身没有调度能力,所以是的,你还是需要使用任务调度器。

    回应最新评论:

    您可以安排一个任务来删除文件。嘿,如果它有效,它就有效,但这就像 delete-y。

    Function AutoExec() 
    
        Dim FileName As String
        
        FileName = "P:\Jarett\123.csv"
    
        If Dir(Filename) <> "" Then Kill Filename
    
        On Error GoTo AutoExec_Err      
    
        DoCmd.TransferText acExportDelim, "Smtest123 Export Specification", "po_detail3", Filename, True, ""     
    
        DoCmd.Quit acSave   
    
    AutoExec_Exit:     
        Exit Function  
    
    AutoExec_Err:     
        MsgBox Error$     
        Resume AutoExec_Exit  
    
    End 
    

    【讨论】:

    • 所以这在宏的 SQL 部分的开头?
    • 不,VBA 代码应该在数据导出之前立即进入函数。
    • 我将宏转换为 VBA,但上面的代码一直给我错误 If Dir (P:\Jarett\smtest.csv) "" Then Kill P:\Jarett\smtest.csv跨度>
    • 当一切都失败时,检查documentation(并祈祷有例子)。
    • 不确定这是否是最好的方法,但有一些工作,Function AutoExec() On Error GoTo AutoExec_Err DoCmd.TransferText acExportDelim, "Smtest123 Export Specification", "po_detail3", "P:\Jarett\123.csv", True, "" DoCmd.Quit acSave AutoExec_Exit: Exit Function AutoExec_Err: MsgBox Error$ Resume AutoExec_Exit End Function
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多