2017-07-14 90 views
0

我目前在MS Access 2010 .mdb中有一個宏(Access 2002 -'03格式)。MS Access:如何使宏生成個性化報告工作?

該宏打開報告並使用SetFilter和ExportWithFormatting對。該宏在第一個2或3後掛起。

我正在考慮放置延遲,但似乎我將不得不使用VBA。這是我唯一的選擇嗎?有什麼建議或修復去解決它?

Function Copy_Of_Wellness() 
On Error GoTo Copy_Of_Wellness_Err 

    DoCmd.Hourglass True 
    DoCmd.OpenReport "Wellness Plan Report", acViewReport, "", "", acIcon 
    DoCmd.SetFilter "", "[Ind]=""Mary Jane""", "" 
    DoCmd.OutputTo acOutputReport, "Wellness Plan Report", 
      "PDFFormat(*.pdf)", """M:\Mary.pdf""", True, "", , acExportQualityPrint 
    DoCmd.SetFilter "", "[Ind]=""Howard Johnson""", "" 
    DoCmd.OutputTo acOutputReport, "Wellness Plan Report", "PDFFormat(*.pdf)", """M:\Howard.pdf""", True, "", , acExportQualityPrint 
    DoCmd.Hourglass False 

Copy_Of_Wellness_Exit: 
    Exit Function 

Copy_Of_Wellness_Err: 
    MsgBox Error$ 
    Resume Copy_Of_Wellness_Exit 

End Function 

儘管最初的錯誤表明,報告是有界的,並首先產生報告。

停止是任意的,可能是運行時錯誤?

Reportedly Unbounded Report

Macro Stop

+0

可能表現出一定的代碼?很難猜測。 – GibralterTop

回答

1

考慮使用WhereConditionDoCmd.OpenReport,然後傳遞一個空對象名論點DoCmdOutputTo而無需DoCmd.SetFilter按照該文檔。

對象名>可選>變:...如果你想輸出的活動對象,指定對象的針對對象類型參數類型將該參數留空...

VBA

調整你的報價的使用,也與acIcon消除可能掛處理,因爲它啓動一個外部的任務欄動作

... 
DoCmd.OpenReport "Wellness Plan Report", acViewReport, , "[Ind]='Mary Jane'"  
DoCmd.OutputTo acOutputReport, , acFormatPDF, "M:\Mary.pdf", True, , , acExportQualityPrint 

DoCmd.OpenReport "Wellness Plan Report", acViewReport, , "[Ind]='Howard Johnson'" 
DoCmd.OutputTo acOutputReport, , acFormatPDF, "M:\Howard.pdf", True, , , acExportQualityPrint 
... 

即使考慮一個循環乾兒的方法:

... 
Dim var as Variant 

For Each var in Array("Mary Jane", "Howard Johnson") 
    DoCmd.OpenReport "Wellness Plan Report", acViewReport, , "[Ind]='" & var & "'", 
    DoCmd.OutputTo acOutputReport, , acFormatPDF, "M:\'" & var & "'.pdf", True, , , acExportQualityPrint 
Next var 
+0

我會在星期一嘗試這個;謝謝! – HowellJenkins

+0

謝謝你的幫助! – HowellJenkins

0

骯髒的修復:

  1. OpenReport()
  2. SetFilter()
  3. ExportWithFormatting()
  4. CloseWindow()

沖洗並根據需要重複。關閉並重新開啓報告是我能夠工作的唯一解決方法。 SelectObject()和刪除與各種命令的過濾器被證明是無效的。