shadow88
Goto Top

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:

...
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

Content-Key: 99813

Url: https://administrator.de/contentid/99813

Printed on: April 25, 2024 at 07:04 o'clock

Mitglied: 27234
27234 Oct 21, 2008 at 09:07:16 (UTC)
Goto Top
Hallo,

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é
Member: Shadow88
Shadow88 Oct 21, 2008 at 09:33:15 (UTC)
Goto Top
Super, funktioniert einwandfrei!!!!

Klasse René. =) Danke Dir für Deine tolle Hilfe.

Liebe Grüße,

Robert