Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 4/2002.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Ihren XING-Kontakten zeigen

Diesen Beitrag Ihrem XING-Kontakten vorstellen

Diesen Beitrag auf Facebook teilen

Verwandte Beiträge:

Formularposition speichern und wiederherstellen

Modale Dialoge mal anders

Transparenz und andere Effekte in Formularen

Alle verwandten Beiträge ansehen ...

Bisherige Kommentare:

Noch keine Kommentare vorhanden.

Alle Kommentare ansehen oder Kommentar abgeben

Die Fortschrittsanzeige - geduldigeres Warten

Autor: Christoph Spielmann, Düsseldorf

Gut Ding will Weile haben, denkt sich mancher Programmierer, wenn er bei der Programmierung eines Importvorgangs schon vermutet, dass der spätere Benutzer seines Werks wohl die eine oder andere Tasse Kaffee trinken wird, bis die Daten korrekt in den Tabellen untergebracht sind. Bei länger andauernden Vorgängen ist es sinnvoll, dem Benutzer ehrlich mitzuteilen, dass der Vorgang noch länger dauert. Er wird darauf aufmerksam gemacht, dass etwas passiert, und wartet geduldiger auf den Abschluss der Arbeit.

Stillstand ist Rückschritt

Die denkbar schlechteste Lösung bei der Abarbeitung länger dauernder Vorgänge ist es, dem Benutzer keine Information über den aktuellen Stand zu geben. Generell sollten alle Vorgänge, die länger als drei Sekunden dauern, entsprechend dokumentiert werden.

Bei sehr langen Vorgängen, die beispielsweise mehrere Minuten dauern, sollte dem Benutzer außerdem die geschätzte Restzeit bis zum Ende angezeigt werden. So kann der Benutzer den Vorgang besser einschätzen und ggf. seine Arbeit darauf einstellen.

Die hier vorgestellte Lösung gibt Ihnen die Möglichkeit, sowohl den prozentualen Fortschritt als auch die noch benötigte Restdauer anzeigen zu lassen. Darüber hinaus können Sie den Vorgang abbrechen oder anhalten.

Abb. 1: Die fertige Fortschrittsanzeige

Letzteres ist insbesondere bei sehr langen Importvorgängen sinnvoll, die mehrere Tage dauern und vorzugsweise über Nacht ausgeführt werden sollen.

Tagsüber können Sie den Vorgang anhalten, damit Sie problemlos andere Aufgaben mit Ihrem PC erledigen können. Abb. 1 zeigt Ihnen den Aufbau der fertigen Fortschrittsanzeige.

Erstellen der Fortschrittsanzeige

Damit Sie die Fortschrittsanzeige problemlos in Ihre Datenbanken übernehmen können, ist der Aufbau allgemein gehalten. Aus dem gleichen Grund befindet sich der komplette VBA-Programmcode in dem Formularmodul der Fortschrittanzeige, sodass Sie lediglich ein einzelnes Formular in Ihre Datenbank kopieren müssen.

Zum Erstellen der Fortschrittsanzeige gehen Sie wie folgt vor:

  • Legen Sie ein neues, ungebundenes Formular an.
  • Blenden Sie die Navigationsschaltfläche, die Bildlaufleisten, die Min- und Max-Schaltflächen sowie die Schließen-Schaltfläche aus. Die entsprechenden Eigenschaften finden Sie im Eigenschaftenfenster des Formulars.
  • Stellen Sie die Eigenschaften Automatisch zentrieren, PopUp und Gebunden auf den Wert Ja und die Eigenschaft Rahmenart auf den Wert Dialog ein.
  • Innerhalb des Formulars platzieren Sie anschließend ein Rechteck. Verwenden Sie dazu das Rechteck-Werkzeug der Toolbox. Geben Sie dem neuen Steuerelement den Namen recFrame. Anschließend geben Sie dem Rahmen eine weiße Hintergrundfarbe sowie einen vertieften Spezialeffekt. Letzteres stellen Sie mit der gleichnamigen Eigenschaft des Rechtecks ein.

    Abb. 2: Die Anordnung der Rechtecke zur Darstellung des prozentualen Fortschritts

    Innerhalb dieses Frames erstellen Sie ein weiteres Rechteck namens recProgressBar. Färben Sie dieses Rechteck blau ein und passen Sie es pixelgenau in den Frame ein. Die Breite sollte hierbei über den kompletten Frame gehen, was der späteren Darstellung von 100% entspricht. Abb. 2 zeigt Ihnen den Aufbau des Balkens in der Entwurfsansicht.

    Praxis-Tipp

    Bei der Positionierung helfen Ihnen die Pfeiltasten der Tastatur. Bei gedrückt gehaltener Strg-Taste können Sie das markierte Steuerelement pixelweise verschieben. Die Größe ändern Sie, indem Sie zusätzlich die Umschalttaste drücken. (

    Anschließend platzieren Sie mittig auf dem Balken ein Bezeichnungsfeld mit transparentem Hintergrund. Geben Sie dem Steuerelement den Namen lblPercent und richten Sie den Inhalt zentriert aus. Als Text geben Sie lediglich einen Punkt ein. Dieser wird später vom Programmcode durch die Prozentangabe ersetzt.

    Abb. 3: Das Formular frmProgressBar in der Entwurfsansicht

    Danach positionieren Sie unterhalb des Balkens noch zwei Bezeichnungsfelder namens lblTime und lblInfo. Beide Steuerelemente sollten ebenfalls einen transparenten Hintergrund haben. Ersteres zeigt später die noch verbleibende Restzeit an. Das zweite Steuerelement dient der Anzeige eines Textes, der den aktuellen Vorgang dokumentiert.

    Abschließend ordnen Sie unterhalb der Bezeichnungsfelder noch zwei Schaltflächen an, die Sie mit Abbrechen und Pause beschriften. Die Namen lauten btnCancel und btnBreak. Daneben setzen Sie noch ein Textfeld namens txtFocus, dessen Höhe und Breite Sie in 0 ändern. Dieses Feld wird dazu benötigt, den Focus von den beiden Schaltflächen wegzubewegen, um diese beispielsweise auszublenden.

    Die Designarbeiten sind damit abgeschlossen. Abb. 3 zeigt Ihnen noch einmal das komplette Formular zusammen mit den Formulareigenschaften in der Entwurfsansicht.

    Speichern Sie es abschließend unter dem Namen frmProgressBar.

    Steuerung der
    Fortschrittsanzeige

    Die Steuerung der Fortschrittsanzeige erfolgt mit Hilfe von VBA-Programmcode. Zur Erfassung des Codes wechseln Sie mit Hilfe des Code-Symbols in den VBA-Editor des Klassenmoduls, das mit dem Formular verbunden ist.

    Private Sub SetPercentage(Percent As Integer)

        Me.lblPercent.Caption = CStr(Percent) + "%"

        If Percent < 50 Then

            Me.lblPercent.ForeColor = QBColor(1) 'Blau

        Else

            Me.lblPercent.ForeColor = QBColor(15) 'Weiß

        End If

        Me.recProgressBar.Width = m_InitialBarWidth / 100 _
            * Percent

        m_CurrentPercent = Percent

    End Sub

    Quellcode 1

    Private Sub Form_Load()

        m_InitialBarWidth = Me.recProgressBar.Width

    End Sub

    Quellcode 2

    Private Sub SetTime(Percent As Integer)

        Dim SecondsForOnePercent As Double

        If Percent = 0 Then

            Me.lblTime.Caption = "Berechne Restzeit"

        Else

            SecondsForOnePercent = (Timer - m_StartTimer) / (Percent - m_RestartPercent)

            

            Me.lblTime.Caption = "Restdauer: " + SecondsToTime(Fix((100 - Percent) * SecondsForOnePercent) + 1)

        End If

    End Sub

    Quellcode 3

    Im Kopf platzieren Sie die folgenden Deklarationsanweisungen:

    Private m_InitialBarWidth As Long

    Private m_StartTimer As Long

    Private m_MaxSteps As Long

    Private m_Cancel As Boolean

    Private m_RestartPercent As Integer

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sie sind nicht angemeldet!
    Für den kompletten Artikel plus Beispieldatenbanken müssen Sie sich einloggen!
    Jetzt einloggen ...
     

    Sie haben keine Benutzerdaten? Na, dann aber schnell:

    Benutzerdaten erhalten Sie auf zwei Arten:

    1. Testen Sie das Online-Archiv von 'Access im Unternehmen' für eine Woche. Sie müssen Sie lediglich für den 'Access im Unternehmen'-Newsletter anmelden.
    Ja, ich will den einwöchigen Testzugang und den Newsletter!

    2. Greifen Sie ein ganzes Jahr auf das Online-Archiv zu und erhalten Sie zusätzlich alle zwei Monate das brandneue "Access im Unternehmen"-Magazin - für nur EUR 108,-* im Jahr!
    Ja, ich will Access im Unternehmen bestellen!

     

    * inkl. MwSt., zzgl. Versandkostenpauschale, EUR 140,- inkl. MwSt., zzgl. Versandkostenpauschale ab dem zweiten Jahr

    Verwandte Beiträge:

    Formularposition speichern und wiederherstellen

    Modale Dialoge mal anders

    Transparenz und andere Effekte in Formularen

    © 2003-2010 André Minhorst Alle Rechte vorbehalten.