使用任务计划程序时,访问VBA无法在服务器上查找Excel文件

时间:2018-05-23 13:23:56

标签: vba excel-vba access-vba excel

您好我在尝试通过任务计划程序运行我的代码时收到1004错误。我可以运行直接从Access执行代码的宏,它工作正常,但从任务计划程序运行时,它将找不到文件路径,错误处理程序启动并通过电子邮件发送给我。有任何想法如何解决这个问题?打开每个excel文件的原因是运行他们的VBA,它只将文件从包含许多复杂公式的另一个excel文件更新为文本。链接到具有所有公式的excel文件证明太慢了。

这是代码。

Option Compare Database
Option Explicit


Public Function UpdateData()

    Dim xlApp As Object
    Dim mail As CDO.Message
    Dim config As CDO.Configuration

    On Error GoTo 100

    Set xlApp = CreateObject("Excel.Application")

    With xlApp
        .Application.Visible = False
        .Workbooks.Open "V:\DHP\Boards\Access Data\CV1Data.xlsm"
        .Workbooks("CV1Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\CV2Data.xlsm"
        .Workbooks("CV2Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\CV3Data.xlsm"
        .Workbooks("CV3Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\CV4Data.xlsm"
        .Workbooks("CV4Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\602Data.xlsm"
        .Workbooks("602Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\PVGData.xlsm"
        .Workbooks("PVGData.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\PV24Data.xlsm"
        .Workbooks("PV24Data.xlsm").Save
        .Workbooks.Open "V:\DHP\Boards\Access Data\ReasonCodes.xlsm"
        .Workbooks("ReasonCodes.xlsm").Save
    End With

    xlApp.Quit

    Set xlApp = Nothing

    Application.SetOption "Auto compact", True
    Application.Quit
    Exit Function

100:

    Set mail = CreateObject("CDO.Message")
    Set config = CreateObject("CDO.Configuration")

    config.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
    config.Fields(cdoSMTPServer).Value = "mr.domain.com"
    config.Fields(cdoSMTPServerPort).Value = 25
    config.Fields.Update

    Set mail.Configuration = config

    With mail
        .To = "First.Last@Domain.com"
        .From = "First.Last@Domain.com"
        .Subject = "Error Occured - Error Number " & Err.Number
        .TextBody = "DHPTables Database -" & Err.Description
        .Send
    End With

    Set config = Nothing
    Set mail = Nothing

    Application.SetOption "Auto compact", True
    Application.Quit
End Function

1 个答案:

答案 0 :(得分:0)

我在微软的网站上发现,对于使用"运行用户是否登录的Office产品,这是不可能的。检查。唯一的方法是让用户不断登录。请参阅Mark Burns的回复。

https://social.msdn.microsoft.com/Forums/office/en-US/7d81395f-fc98-4e96-90e0-1331cb4dab3d/scheduled-macro-only-runs-if-user-is-logged-in-windows-server-2003r2?forum=accessdev