2016-08-31 2 views
0

Ich benutze Access, um einen dynamischen Bericht zu erstellen, und ich möchte, dass beim Schließen Ereignis der Bericht gelöscht werden. Gerade jetzt, ich schaffe den Bericht wie folgt aus:Löschen dynamisch erstellten Bericht auf schließen Ereignis

Set rpt = CreateReport 
With rpt 
    .Visible = True 
    .Caption = "Calendar View" 
    .BorderStyle = 1 
    .AutoCenter = True 
    .ScrollBars = 0 
    .Printer.Orientation = acPRORLandscape 
    .Modal = True 
    .PopUp = True 
    .OnClose = "[Event Procedure]" 
End With 

'extra stuff for report 

strName = rpt.Name 

DoCmd.Close acReport, strName, acSaveYes 
DoCmd.Rename "rptNewName", acReport, strName 
DoCmd.OpenReport "rptNewName", acViewPreview, , , acWindowNormal 
DoCmd.DeleteObject acReport, "rptNewName" 

Aber wird die DeleteObject einen Fehler werfen, weil der Bericht noch geöffnet ist .. Wie kann ich den Bericht über close-Ereignis löschen?

Vielen Dank!

Antwort

1

Legen Sie die folgenden, kurz bevor Sie DoCmd.DeleteObject Linie ...

Do While Application.CurrentProject.AllReports(sRptName).IsLoaded 
DoEvents 
Loop 
+0

Danke, es hat funktioniert perfekt! – rosuandreimihai

Verwandte Themen