none
Repaint eines Formulars

    Frage

  • Moin,

    aus einem Modul heraus steuere ich ein Formular, das mir als Fortschrittsanzeige dient. Das klappt manchmal sehr gut, soll heißen jede Aktualisierung wird an diesem Formular auch angezeigt. Manchmal klappt das aber auch nicht, die ersten Änderungen werden noch übernommen, dann nicht mehr, es kommt am Ende nur noch die Mitteilung das der Prozess abgeschlossen ist.

    ...
    Forms!formular1.Caption = Fil & " wird verarbeitet ( " & m_i & " von " & m_Anz & " )"
    Forms!formular1.Form.Controls("rechteck14").Width = 5900 * (m_i - 1) / (m_Anz - 1)
    Forms!formular1.Repaint
    ...

    bei MSDN heißt es:

    "Gelegentlich wartet Microsoft Access mit der Ausführung von anstehenden Bildschirmaktualisierungen, bis andere Aufgaben beendet wurden. Mit der RepaintRepaint-Methode können Sie die sofortige Aktualisierung der Steuerelemente des angegebenen Formulars erzwingen. "

    Anscheinend gibt es aber Situationen, bei denen Repaint ins Leere geht. Diese Fortschrittanzeige macht allerdings nur Sinn, wenn die Änderungen auch durchgestellt werden. Weiß jemand Rat?

    Tom


    • Bearbeitet tom krist Donnerstag, 4. Juni 2015 07:51
    Donnerstag, 4. Juni 2015 07:49

Antworten

  • Am 04.06.2015 schrieb tom krist:

    aus einem Modul heraus steuere ich ein Formular, das mir als Fortschrittsanzeige dient. Das klappt manchmal sehr gut, soll heißen jede Aktualisierung wird an diesem Formular auch angezeigt. Manchmal klappt das aber auch nicht, die ersten Änderungen werden noch übernommen, dann nicht mehr, es kommt am Ende nur noch die Mitteilung das der Prozess abgeschlossen ist.

    ...
    Forms!formular1.Caption = Fil & " wird verarbeitet ( " & m_i & " von " & m_Anz
    & " )"
    Forms!formular1.Form.Controls("rechteck14").Width = 5900 * (m_i - 1) / (m_Anz -
    1)
    Forms!formular1.Repaint
    ...

    Anstatt dem Repaint ein DoEvents einfügen, dann sollte es
    funktionieren.


    Servus
    Winfried

    Gruppenrichtlinien
    HowTos zum WSUS Package Publisher
    WSUS Package Publisher
    HowTos zum Local Update Publisher
    NNTP-Bridge für MS-Foren

    • Als Antwort markiert tom krist Donnerstag, 4. Juni 2015 10:07
    Donnerstag, 4. Juni 2015 08:51

Alle Antworten

  • Am 04.06.2015 schrieb tom krist:

    aus einem Modul heraus steuere ich ein Formular, das mir als Fortschrittsanzeige dient. Das klappt manchmal sehr gut, soll heißen jede Aktualisierung wird an diesem Formular auch angezeigt. Manchmal klappt das aber auch nicht, die ersten Änderungen werden noch übernommen, dann nicht mehr, es kommt am Ende nur noch die Mitteilung das der Prozess abgeschlossen ist.

    ...
    Forms!formular1.Caption = Fil & " wird verarbeitet ( " & m_i & " von " & m_Anz
    & " )"
    Forms!formular1.Form.Controls("rechteck14").Width = 5900 * (m_i - 1) / (m_Anz -
    1)
    Forms!formular1.Repaint
    ...

    Anstatt dem Repaint ein DoEvents einfügen, dann sollte es
    funktionieren.


    Servus
    Winfried

    Gruppenrichtlinien
    HowTos zum WSUS Package Publisher
    WSUS Package Publisher
    HowTos zum Local Update Publisher
    NNTP-Bridge für MS-Foren

    • Als Antwort markiert tom krist Donnerstag, 4. Juni 2015 10:07
    Donnerstag, 4. Juni 2015 08:51
  • Danke Winfried,

    werd's beobachten.

    Gruß Tom

    Donnerstag, 4. Juni 2015 10:08