VBA Prozess stoppen während Report offen
Hallo zusammen,
hab doch noch eine letzte Frage ;)
Und zwar möchte ich einen Report als Preview öffnen und währenddessen die VBA Prozedur (danach kommt eine Benutzerabfrage) pausieren.
Hier der Code:
Ist so etwas möglich oder habt ihr eine andere Idee?
Vielen Dank für eure Hilfe!
Liebe Grüße,
Robert
hab doch noch eine letzte Frage ;)
Und zwar möchte ich einen Report als Preview öffnen und währenddessen die VBA Prozedur (danach kommt eine Benutzerabfrage) pausieren.
Hier der Code:
...
DoCmd.OpenReport "rptSAvoll_nnFakt_neu_Auto", acViewPreview
--HIER SOLL GEWARTET WERDEN, BIS DER REPORT NICHT MEHR OFFEN IST--
AbfrageRecord = MsgBox("Next study?", vbOKCancel)
If AbfrageRecord = 2 Then
...
Ist so etwas möglich oder habt ihr eine andere Idee?
Vielen Dank für eure Hilfe!
Liebe Grüße,
Robert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 99813
Url: https://administrator.de/forum/vba-prozess-stoppen-waehrend-report-offen-99813.html
Ausgedruckt am: 16.04.2025 um 13:04 Uhr
2 Kommentare
Neuester Kommentar

Hallo,
dazu kann man sich mit einem kleinen Umweg und 2 zusätzlichen Funktionen behelfen.
1. 2 Funktionen einfügen
und
2. Deinen Code so anpassen:
Gruß - René
dazu kann man sich mit einem kleinen Umweg und 2 zusätzlichen Funktionen behelfen.
1. 2 Funktionen einfügen
Function IsReportLoaded(strReportname As String) As Integer
On Error GoTo IsReportLoaded_Err
Dim i As Integer
For i = 0 To Reports.Count - 1
If Reports(i).Name = strReportname Then
IsReportLoaded = True
Exit Function
End If
Next i
IsReportLoaded = False
Exit Function
IsReportLoaded_Err:
MsgBox Err.Description
IsReportLoaded = False
Exit Function
End Function
und
Function Sleep(dauer As Long) As Integer
On Error GoTo Sleep_Err
Dim zielwert As Variant
Dim aktwert As Variant
Dim i As Long
Dim ret As Variant
zielwert = Now
While (Now - zielwert < (dauer / 86400))
DoEvents
Wend
Sleep = True
Exit Function
Sleep_Err:
MsgBox Err.Description
Sleep = False
Exit Function
End Function
2. Deinen Code so anpassen:
...
DoCmd.OpenReport "rptSAvoll_nnFakt_neu_Auto", acViewPreview
--HIER SOLL GEWARTET WERDEN, BIS DER REPORT NICHT MEHR OFFEN IST--
Do
If IsReportLoaded("rptSAvoll_nnFakt_neu_Auto") Then
Sleep (5)
Else
Exit Do
End If
Loop
AbfrageRecord = MsgBox("Next study?", vbOKCancel)
If AbfrageRecord = 2 Then
...
Gruß - René