2017-08-04 72 views
0

我熟悉VBA,但我不是程序员,所以我可以在这个问题上获得任何帮助,非常感谢。我有一个作为.pdf文件邮寄的报告对象。这部分代码工作正常,但我希望能够将此文件的副本保存到具有唯一名称的特定位置,该名称包含创建文件的日期和时间。第一组代码是使用第二组代码不起作用的SendObject,它是一个单独的过程,我一直在测试以保存该对象。一旦我能得到它的工作,我将首先将它整合到一起。我将不胜感激任何帮助。访问VBA保存对象Report.pdf到一个具有唯一名称的特定路径

Private Sub Command21_Click() 

DoCmd.SetWarnings (False) 
Dim mailto As String 
Dim ccto As String 
Dim bccto As String 
    mailto = "[email protected]" 
    ccto = "" 
    bccto = "" 
emailmsg = "The attached document is the updated Case Log." & vbNewLine  
& "Please review the report, contact me and you find any discrepancies. "&vbNewLine & vbNewLine & "Thank You, " & vbNewLine & vbNewLine & vbNewLine & "Cary S. WInchester" & vbNewLine & "American Commercial Barge Line" & vbNewLine & "Safety Department" 

mailsub = "Updated Case Log Report" 

On Error Resume Next 

DoCmd.SendObject acSendReport, "rpt_CaseLog-CurrentYear", acFormatPDF, mailto, ccto, bccto, mailsub, emailmsg, True 
DoCmd.SetWarnings (True) 

End Sub 

这是尝试将对象保存到具有唯一名称的特定路径的第二组代码。

Private Sub Command23_Click() 

On Error GoTo Command23_Click_Err 
    Dim filePath As String 
    filePath = "C:\Work\ACBL\Access Dbase\DayCount" & "CaseLog" _ 
     & Format(Date, " yyyy/mm/dd") _ 
     & Format(Time, " hh:MM:ss") & ".pdf" 
    DoCmd.OutputTo acOutputReport, "rpt_CaseLog-CurrentYear", _ 
     "PDFFormat(*.pdf)", filePath, _ 
     False, "", , acExportQualityPrint 
Command23_Click_Exit: 
    Exit Sub 
Command23_Click_Err: 
    MsgBox Error$ 
    Resume Command23_Click_Exit 

End Sub 
+0

你必须在输出前打开报表与'DoCmd.OpenReport' – BitAccesser

回答

1

非常感谢Bit Accesser,但这不是问题,代码是按原样布置的;但是,日期和时间格式使用可用于文件名的字符,具体而言,冒号和反斜杠导致它失败。以下是更正后的代码。还有其他一些我调整过的地方,但是这个效果很好。

Private Sub Command25_Click() 
On Error GoTo Command25_Click_Err 

Dim filePath As String 

filePath = "C:\Work\ACBL\Access Dbase\DayCount\Reports\" 

    DoCmd.OutputTo acOutputReport, "rpt_CaseLog-CurrentYear", acFormatPDF, _ 
    filePath & " Case Log Update" & Format(Now(), " dd-mm-yyyy hhmmss") & ".pdf" 

Command25_Click_Exit: 
    Exit Sub 

Command25_Click_Err: 
    MsgBox Error$ 
    Resume Command25_Click_Exit 

End Sub 
+0

帮助你自己,你会得到帮助;)很高兴您共享您的解决方案!你用'.OpenReport'正确的,我需要先过滤,但如果没有fiter需要,这是没有必要的。错误消息会有帮助。 – BitAccesser

相关问题