VBA soll während Ausführung in einem Formular-Textfeld Infos anzeigen

15723

Grünschnabel
In einem Access-Formular wird über eine Schaltfläche ein ein VBA-Code gestartet, der ca. 4 Minuten läuft und diverse Berechnungen anstellt.
Im VBA-Code gebe ich an mehreren Stellen den Befehl, ein Textfeld im Formular anzupassen, damit der Anwender ein Feedback über den Fortschritt bekommt.
Allerdings sieht der User diese Textänderungen nicht - offenbar ist Access zu beschäftigt, als dass der neue Text am Bildschirm auch erscheint.
Erst wenn VBA fertig ist, sieht man schlagartig alle Feedback-Infos (die aber nach Programmende wenig Sinn machen).
Kann man das Formular "zwingen" das geänderte Textfeld während der Ausführung anzuzeigen?
 
Lösung
Direkt nach dem Ansteuern des Ausgabefeldes ein DoEvents setzen
vb@rchiv · Tipps & Tricks · DoEvents gezielt und nur wenn notwendig einsetzen
Visual Basic:
MyForm.MyTextField.Value = 1234
DoEvents

Hier mein Test. Ein Form mit einem Button cmd und einem Label lbl. Nach allen hundertausend Durchläufen soll der Wert angepasst werden. Funktioniert einwandfrei.
Visual Basic:
Private Sub cmd_Click()
    Dim i: For i = 0 To 99900000
        If i Mod 100000 = 0 Then
            lbl.Caption = i
            DoEvents
        End If
    Next i
End Sub
Direkt nach dem Ansteuern des Ausgabefeldes ein DoEvents setzen
vb@rchiv · Tipps & Tricks · DoEvents gezielt und nur wenn notwendig einsetzen
Visual Basic:
MyForm.MyTextField.Value = 1234
DoEvents

Hier mein Test. Ein Form mit einem Button cmd und einem Label lbl. Nach allen hundertausend Durchläufen soll der Wert angepasst werden. Funktioniert einwandfrei.
Visual Basic:
Private Sub cmd_Click()
    Dim i: For i = 0 To 99900000
        If i Mod 100000 = 0 Then
            lbl.Caption = i
            DoEvents
        End If
    Next i
End Sub
 
Lösung
Zurück