{"id":55000071,"date":"2002-08-01T00:00:00","date_gmt":"2021-02-10T20:13:43","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=71"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Die_Fortschrittsanzeige__geduldigeres_Warten","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/","title":{"rendered":"Die Fortschrittsanzeige &#8211; geduldigeres Warten"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: Christoph Spielmann, D&uuml;sseldorf<\/p>\n<p><\/b><\/p>\n<p><b>Gut Ding will Weile haben, denkt sich mancher Programmierer, wenn er bei der Programmierung eines Importvorgangs schon vermutet, dass der sp&auml;tere Benutzer seines Werks wohl die eine oder andere Tasse Kaffee trinken wird, bis die Daten korrekt in den Tabellen untergebracht sind. Bei l&auml;nger andauernden Vorg&auml;ngen ist es sinnvoll, dem Benutzer ehrlich mitzuteilen, dass der Vorgang noch l&auml;nger dauert. Er wird darauf aufmerksam gemacht, dass etwas passiert, und wartet geduldiger auf den Abschluss der Arbeit.<\/b><\/p>\n<p>Die denkbar schlechteste L&ouml;sung bei der Abarbeitung l&auml;nger dauernder Vorg&auml;nge ist es, dem Benutzer keine Information &uuml;ber den aktuellen Stand zu geben. Generell sollten alle Vorg&auml;nge, die l&auml;nger als drei Sekunden dauern, entsprechend dokumentiert werden.<\/p>\n<p>Bei sehr langen Vorg&auml;ngen, die beispielsweise mehrere Minuten dauern, sollte dem Benutzer au&szlig;erdem die gesch&auml;tzte Restzeit bis zum Ende angezeigt werden. So kann der Benutzer den Vorgang besser einsch&auml;tzen und ggf. seine Arbeit darauf einstellen.<\/p>\n<p>Die hier vorgestellte L&ouml;sung gibt Ihnen die M&ouml;glichkeit, sowohl den prozentualen Fortschritt als auch die noch ben&ouml;tigte Restdauer anzeigen zu lassen. Dar&uuml;ber hinaus k&ouml;nnen Sie den Vorgang abbrechen oder anhalten. <\/p>\n<p><IMG height=\"167\" src=\"..\/fileadmin\/_temp_\/{CE02203C-32B8-4C23-830D-BD119A1A9A43}\/pic001.png\" width=\"384\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Die fertige Fortschrittsanzeige<\/span><\/b><\/p>\n<p>Letzteres ist insbesondere bei sehr langen Importvorg&auml;ngen sinnvoll, die mehrere Tage dauern und vorzugsweise &uuml;ber Nacht ausgef&uuml;hrt werden sollen.<\/p>\n<p>Tags&uuml;ber k&ouml;nnen Sie den Vorgang anhalten, damit Sie problemlos andere Aufgaben mit Ihrem PC erledigen k&ouml;nnen. Bild 1 zeigt Ihnen den Aufbau der fertigen Fortschrittsanzeige.<\/p>\n<p>Damit Sie die Fortschrittsanzeige problemlos in Ihre Datenbanken &uuml;bernehmen k&ouml;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&uuml;ssen.<\/p>\n<p>Zum Erstellen der Fortschrittsanzeige gehen Sie wie folgt vor:<\/p>\n<li>Legen Sie ein neues, ungebundenes Formular an.<\/li>\n<li>Blenden Sie die Navigationsschaltfl&auml;che, die Bildlaufleisten, die Min- und Max-Schaltfl&auml;chen sowie die Schlie&szlig;en-Schaltfl&auml;che aus. Die entsprechenden Eigenschaften finden Sie im Eigenschaftenfenster des Formulars.<\/li>\n<li>Stellen Sie die Eigenschaften Automatisch zentrieren, PopUp und Gebunden auf den Wert Ja und die Eigenschaft Rahmenart auf den Wert Dialog ein.<\/li>\n<p>Innerhalb des Formulars platzieren Sie anschlie&szlig;end ein Rechteck. Verwenden Sie dazu das Rechteck-Werkzeug der Toolbox. Geben Sie dem neuen Steuerelement den Namen recFrame. Anschlie&szlig;end geben Sie dem Rahmen eine wei&szlig;e Hintergrundfarbe sowie einen vertieften Spezialeffekt. Letzteres stellen Sie mit der gleichnamigen Eigenschaft des Rechtecks ein.<\/p>\n<p><IMG height=\"33\" src=\"..\/fileadmin\/_temp_\/{CE02203C-32B8-4C23-830D-BD119A1A9A43}\/pic002.png\" width=\"373\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Die Anordnung der Rechtecke zur Darstellung des prozentualen Fortschritts<\/span><\/b><\/p>\n<p>Innerhalb dieses Frames erstellen Sie ein weiteres Rechteck namens recProgressBar. F&auml;rben Sie dieses Rechteck blau ein und passen Sie es pixelgenau in den Frame ein. Die Breite sollte hierbei &uuml;ber den kompletten Frame gehen, was der sp&auml;teren Darstellung von 100% entspricht. Bild 2 zeigt Ihnen den Aufbau des Balkens in der Entwurfsansicht.<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Bei der Positionierung helfen Ihnen die Pfeiltasten der Tastatur. Bei gedr&uuml;ckt gehaltener Strg-Taste k&ouml;nnen Sie das markierte Steuerelement pixelweise verschieben. Die Gr&ouml;&szlig;e &auml;ndern Sie, indem Sie zus&auml;tzlich die Umschalttaste dr&uuml;cken. <\/p>\n<p>Anschlie&szlig;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&auml;ter vom Programmcode durch die Prozentangabe ersetzt.<\/p>\n<p><IMG height=\"317\" src=\"..\/fileadmin\/_temp_\/{CE02203C-32B8-4C23-830D-BD119A1A9A43}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Das Formular frmProgressBar in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Danach positionieren Sie unterhalb des Balkens noch zwei Bezeichnungsfelder namens lblTime und lblInfo. Beide Steuerelemente sollten ebenfalls einen transparenten Hintergrund haben. Ersteres zeigt sp&auml;ter die noch verbleibende Restzeit an. Das zweite Steuerelement dient der Anzeige eines Textes, der den aktuellen Vorgang dokumentiert.<\/p>\n<p>Abschlie&szlig;end ordnen Sie unterhalb der Bezeichnungsfelder noch zwei Schaltfl&auml;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&ouml;he und Breite Sie in 0 &auml;ndern. Dieses Feld wird dazu ben&ouml;tigt, den Focus von den beiden Schaltfl&auml;chen wegzubewegen, um diese beispielsweise auszublenden.<\/p>\n<p>Die Designarbeiten sind damit abgeschlossen. Bild 3 zeigt Ihnen noch einmal das komplette Formular zusammen mit den Formulareigenschaften in der Entwurfsansicht.<\/p>\n<p>Speichern Sie es abschlie&szlig;end unter dem Namen frmProgressBar.<\/p>\n<p>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.<\/p>\n<pre>Private Sub SetPercentage(Percent As Integer)\r\n    Me.lblPercent.Caption = CStr(Percent) + \"%\"\r\n    If Percent &lt; 50 Then\r\n        Me.lblPercent.ForeColor = QBColor(1) ''Blau\r\n    Else\r\n        Me.lblPercent.ForeColor = QBColor(15) ''Wei&szlig;\r\n    End If\r\n    Me.recProgressBar.Width = m_InitialBarWidth \/ 100 _        * Percent\r\n    m_CurrentPercent = Percent\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Private Sub Form_Load()\r\n    m_InitialBarWidth = Me.recProgressBar.Width\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>Private Sub SetTime(Percent As Integer)\r\n    Dim SecondsForOnePercent As Double\r\n    If Percent = 0 Then\r\n        Me.lblTime.Caption = \"Berechne Restzeit\"\r\n    Else\r\n        SecondsForOnePercent = (Timer - m_StartTimer) \/ (Percent - m_RestartPercent)\r\n        \r\n        Me.lblTime.Caption = \"Restdauer: \" + SecondsToTime(Fix((100 - Percent) * SecondsForOnePercent) + 1)\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Im Kopf platzieren Sie die folgenden Deklarationsanweisungen:<\/p>\n<pre>Private m_InitialBarWidth As Long\r\nPrivate m_StartTimer As Long\r\nPrivate m_MaxSteps As Long\r\nPrivate m_Cancel As Boolean\r\nPrivate m_RestartPercent As Integer\r\nPrivate m_CurrentPercent As Integer<\/pre>\n<p>Den Zweck dieser Variablen lernen Sie sp&auml;ter noch kennen.<\/p>\n<p>Die erste Prozedur SetPercentage (s. Quellcode 1) hat die Aufgabe, die prozentuale Darstellung des Balkens zu steuern. Hierzu wird die Breite des blauen Rechtecks entsprechend der aktuellen Prozentzahl variiert: <\/p>\n<p>Zuerst wird die Prozentzahl in das entsprechende Bezeichnungsfeld lblPercent geschrieben. Sofern der Fortschritt noch unter 50% liegt, wird der Text schwarz dargestellt.<\/p>\n<p>Oberhalb von 50% erfolgt eine blaue Darstellung. So hebt sich der Text optimal vom Hintergrund ab.<\/p>\n<p>Im letzten Teil erfolgt schlie&szlig;lich die Berechnung der Balkenbreite. Hierzu ist es erforderlich, die maximale Breite des Balkens zu kennen, damit die prozentuale Darstellung korrekt erfolgen kann. <\/p>\n<p>Diese liest die Prozedur aus der privaten Variable InitialBarWidth aus, die im Load-Ereignis des Klassenmoduls gesetzt wird (s. Quellcode 2).<\/p>\n<p>F&uuml;r die Berechnung der Restdauer ist die Prozedur SetTime zust&auml;ndig (s. Quellcode 3).<\/p>\n<p>Sofern die Prozentzahl gleich 0 ist, schreibt sie den Text &#8222;Berechne Restzeit&#8220; in das Bezeichnungsfeld lblTime.<\/p>\n<p>Andernfalls berechnet sie die Dauer f&uuml;r die Abarbeitung eines einzelnen Prozentpunkts und sch&auml;tzt damit die Dauer f&uuml;r die noch verbleibenden Prozente ab.<\/p>\n<p>Zur Berechnung der Restdauer ben&ouml;tigt die Prozedur den Startzeitpunkt. Diesen liest sie aus der Variablen m_StartTimer aus. Diese wird innerhalb der Prozedur InitProgress gesetzt, die Sie sp&auml;ter noch kennen lernen.<\/p>\n<p>Zus&auml;tzlich wird mittels m_RestartPercent-Variable ber&uuml;cksichtigt, ob der Vorgang zwischenzeitlich mittels Pausenfunktion angehalten wurde. Die Pausenzeit darf schlie&szlig;lich bei der Berechnung der Restlaufzeit nicht ber&uuml;cksichtigt werden.<\/p>\n<p>Um die Berechnung korrekt auszuf&uuml;hren, wird beim Klick auf die Pause-Schaltfl&auml;che die Ereignisprozedur aus Quellcode 4 ausgef&uuml;hrt.<\/p>\n<pre>Private Sub btnBreak_Click()\r\n    MsgBox \"Bitte klicken Sie auf OK, um den \" _        & \"Vorgang fortzusetzen\", vbInformation\r\n    m_StartTimer = Timer\r\n    m_RestartPercent = m_CurrentPercent\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<pre>Private Function SecondsToTime(Seconds As Long) As _    String\r\n    Dim MyDate As Date\r\n    Dim Result As String\r\n    Dim Tage As Long\r\n    MyDate = DateAdd(\"s\", Seconds, #1\/1\/2000#)\r\n    Tage = DateDiff(\"d\", #1\/1\/2000#, MyDate)\r\n    If Tage &gt; 0 Then\r\n        Result = CStr(Tage) + \" Tage, \"\r\n    End If\r\n    If Hour(MyDate) &gt; 0 Then\r\n        Result = Result + Format(Hour(MyDate), \"0\")\r\n        Result = Result + IIf(Hour(MyDate) = 1, _            \" Stunde, \", \" Stunden, \")\r\n    End If\r\n    If Minute(MyDate) &gt; 0 Then\r\n        Result = Result + Format(Minute(MyDate), \"0\")\r\n        Result = Result + IIf(Minute(MyDate) = 1, _            \" Minute, \", \" Minuten, \")\r\n    End If\r\n    Result = Result + Format(Second(MyDate), \"0\")\r\n    Result = Result + IIf(Second(MyDate) = 1, _        \" Sekunde, \", \" Sekunden\")\r\n    SecondsToTime = Result\r\nEnd Function<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Die MsgBox-Funktion h&auml;lt den Vorgang an, bis der Benutzer das Dialogfenster mit OK schlie&szlig;t. Danach wird der Timer auf die aktuelle Zeit gesetzt sowie die Prozentzahl bei Fortsetzung des Vorgangs in der Variablen m_RestartPercent vermerkt.<\/p>\n<p><b>Formatierung der Restdauer<\/b><\/p>\n<p>Die Berechnung der Restdauer erfolgt zun&auml;chst in Sekunden. Um dem Benutzer eine vern&uuml;nftige Darstellung mit Sekunden, Minuten, Stunden und Tagen zu pr&auml;sentieren, erfolgt eine entsprechende Umrechnung durch die Prozedur SecondsToTime (s. Quellcode 5).<\/p>\n<p>Die Prozedur verwendet den 1.1.2000 als Referenzdatum und addiert hierzu die Anzahl der Sekunden mittels DateAdd-Funktion. Aus der Differenz zwischen den beiden Datumswerten lassen sich dann die Tage, Stunden, Minuten und Sekunden berechnen und anzeigen.<\/p>\n<p>Die bis jetzt vorgestellten Prozeduren werden als Unterprozeduren von den beiden Hauptprozeduren InitProgress und UpdateProgress aufgerufen. Die erste Prozedur (s. Quellcode 6) initialisiert den Vorgang:<\/p>\n<pre>Public Sub InitProgress(Caption As String, _    MaxSteps As Long, AllowCancel As Boolean, _    AllowBreak As Boolean)\r\n    m_Cancel = False\r\n    m_MaxSteps = MaxSteps\r\n    m_StartTimer = Timer\r\n    Me.Caption = Caption\r\n    SetPercentage (0)\r\n    Me.txtFocus.SetFocus\r\n    If AllowCancel Then\r\n        Me.btnCancel.Visible = True\r\n    Else\r\n        Me.btnCancel.Visible = False\r\n    End If\r\n    If AllowBreak Then\r\n        Me.btnBreak.Visible = True\r\n    Else\r\n        Me.btnBreak.Visible = False\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<pre>Public Sub UpdateProgress(Step As Long, _    Info As String, ByRef Cancel As Boolean)\r\n    Dim Percent As Integer\r\n    If Step &lt; m_MaxSteps Then\r\n        Percent = _            CInt(Step \/ m_MaxSteps * 100)\r\n    Else\r\n        Percent = 100\r\n    End If\r\n    SetPercentage (Percent)\r\n    SetTime (Percent)\r\n    Me.lblInfo.Caption = Info\r\n    If m_Cancel = True Then\r\n        Cancel = True\r\n    End If\r\n    DoEvents\r\nEnd Sub<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<pre>Private Sub btnCancel_Click()\r\n    m_Cancel = True\r\n    Me.txtFocus.SetFocus\r\n    Me.btnCancel.Enabled = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<p>Als Parameter der &ouml;ffentlichen Prozedur werden eine Fensterbeschriftung, die maximale Anzahl der Schritte sowie zwei Boolean-Variablen &uuml;bergeben. Die Boolean-Variablen bestimmen, ob der Benutzer die M&ouml;glichkeit zum Abbruch oder zum Pausieren des Vorgangs haben soll. Dementsprechend werden  die beiden Schaltfl&auml;chen Abbrechen bzw. Pause ein- oder ausgeblendet.<\/p>\n<p>Vorher erfolgt noch eine Initialisierung der privaten Variablen sowie die Aktualisierung auf 0 Prozent. Zur Erinnerung: Direkt nach dem Start ist der Balken noch &uuml;ber die volle Breite gezogen, was einem Wert von 100 Prozent entspricht.<\/p>\n<p><b>Aktualisierung<\/b><\/p>\n<p>Die Aktualisierung der Fortschrittsanzeige &uuml;bernimmt die zweite Prozedur namens UpdateProgress (s. Quellcode 7).<\/p>\n<p>Als Parameter werden die aktuelle Schritt-Nummer sowie ein Informationstext angegeben.<\/p>\n<p>Der Cancel-Parameter ist als ByRef deklariert, da hiermit die Information &uuml;ber einen eventuellen Abbruch an die aufrufende Prozedur zur&uuml;ck-geliefert wird. Ein Beispiel hierzu erhalten Sie sp&auml;ter.<\/p>\n<p>Die Prozedur pr&uuml;ft zun&auml;chst, ob die maximale Anzahl der Steps (m_MaxSteps) nicht &uuml;berschritten wird. Dies kann beispielsweise bei einem fehlerhaften Aufruf der Prozedur passieren.<\/p>\n<p>Wenn die Angabe in Ordnung ist, berechnet die Prozedur den prozentualen Fortschritt und aktualisiert die Anzeige. Die DoEvents-Anweisung gibt Access die M&ouml;glichkeit, den Bildschirm zu aktualisieren. Hierdurch sind die &auml;nderungen sofort sichtbar.<\/p>\n<pre>Public Sub CloseProgress()\r\n    DoCmd.Close acForm, Me.Name\r\nEnd Sub<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<pre>Private Sub btnDemo1_Click()\r\n    Dim MyProgressBar As Form_frmProgressBar\r\n    Dim Step As Long\r\n    Const MaxSteps = 20000\r\n    Dim Cancel As Boolean\r\n    DoCmd.OpenForm (\"frmProgressBar\")\r\n    Set MyProgressBar = Forms!frmProgressBar\r\n    With MyProgressBar\r\n        .InitProgress \"Datens&auml;tze werden angelegt\", _            MaxSteps, True, True\r\n        For Step = 1 To MaxSteps\r\n            If Step Mod 100 = 0 Then\r\n                .UpdateProgress Step, _                    \"Lege Datensatz \" + CStr(Step) + _                    \" an.\", Cancel\r\n                If Cancel = True Then\r\n                    Exit For\r\n                Else\r\n                    CreateRecord\r\n                End If\r\n            End If\r\n        Next\r\n        .CloseProgress\r\n    End With\r\nEnd Sub<\/pre>\n<p><b>Quellcode 9<\/b><\/p>\n<p>Bei einem Klick auf die Abbrechen-Schaltfl&auml;che f&uuml;hrt Access die Ereignisprozedur aus Quellcode 8 aus.<\/p>\n<p>Beim Klick wird die Variable m_Cancel auf True gesetzt, sodass diese Information beim n&auml;chsten Aufruf der UpdateProgress an die aufrufende Prozedur weitergegeben werden kann.<\/p>\n<p>Anschlie&szlig;end wird der Focus auf das Textfeld txtFocus gesetzt, sodass die Abbrechen-Schaltfl&auml;che anschlie&szlig;end deaktiviert werden kann.<\/p>\n<p>Die letzte Prozedur CloseProgress sorgt daf&uuml;r, dass die Fortschrittsanzeige geschlossen wird (s. Quellcode 9).<\/p>\n<p>Den Einsatz der Fortschrittsanzeige demonstriert die Prozedur aus Quellcode 10, die Sie auch im Formular frmTest der Beispieldatenbank finden: Hier werden mit Hilfe einer Schleife Datens&auml;tze angelegt.<\/p>\n<p>Vor dem Durchlauf der Schleife wird zun&auml;chst das Formular frmProgressBar ge&ouml;ffnet. Anschlie&szlig;end erfolgt eine Initialisierung mittels InitProgress-Methode.<\/p>\n<p>Die Aktualisierung der Anzeige erfolgt nur bei jedem hundertsten Schritt (Step MOD 100 = 0), da ansonsten die Aktualisierung in der Summe mehr Zeit als der eigentliche Vorgang in Anspruch nehmen w&uuml;rde.<\/p>\n<p>Nach jeder Aktualisierung pr&uuml;ft die Prozedur, ob der Benutzer den Vorgang abgebrochen hat. Hierzu pr&uuml;ft sie den Cancel-Parameter auf den Wert True.<\/p>\n<p>Abschlie&szlig;end ruft sie die CloseProgress-Methode auf, die die Fortschrittsanzeige vom Bildschirm entfernt.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Fortschrittsanzeige00.mdb<\/p>\n<p>Fortschrittsanzeige00.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/A7CDE301-1EC9-4118-8258-D2B9CD91BAB2\/aiu_71.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gut Ding will Weile haben, denkt sich mancher Programmierer, wenn er bei der Programmierung eines Importvorgangs schon vermutet, dass der sp&auml;tere Benutzer seines Werks wohl die eine oder andere Tasse Kaffee trinken wird, bis die Daten korrekt in den Tabellen untergebracht sind. Bei l&auml;nger andauernden Vorg&auml;ngen ist es sinnvoll, dem Benutzer ehrlich mitzuteilen, dass der Vorgang noch l&auml;nger dauert. Er wird darauf aufmerksam gemacht, dass etwas passiert, und wartet geduldiger auf den Abschluss der Arbeit.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662002,66042002,44000028,44000023],"tags":[],"class_list":["post-55000071","post","type-post","status-publish","format-standard","hentry","category-662002","category-66042002","category-Ergonomie_und_Benutzeroberflaeche","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Die Fortschrittsanzeige - geduldigeres Warten - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die Fortschrittsanzeige - geduldigeres Warten\" \/>\n<meta property=\"og:description\" content=\"Gut Ding will Weile haben, denkt sich mancher Programmierer, wenn er bei der Programmierung eines Importvorgangs schon vermutet, dass der sp&auml;tere Benutzer seines Werks wohl die eine oder andere Tasse Kaffee trinken wird, bis die Daten korrekt in den Tabellen untergebracht sind. Bei l&auml;nger andauernden Vorg&auml;ngen ist es sinnvoll, dem Benutzer ehrlich mitzuteilen, dass der Vorgang noch l&auml;nger dauert. Er wird darauf aufmerksam gemacht, dass etwas passiert, und wartet geduldiger auf den Abschluss der Arbeit.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T20:13:43+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Die Fortschrittsanzeige &#8211; geduldigeres Warten\",\"datePublished\":\"2021-02-10T20:13:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/\"},\"wordCount\":1626,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/84962f25a732459fa856bd8e0acc1161\",\"articleSection\":[\"2002\",\"4\\\/2002\",\"Ergonomie und Benutzeroberfl\u00e4che\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/\",\"name\":\"Die Fortschrittsanzeige - geduldigeres Warten - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/84962f25a732459fa856bd8e0acc1161\",\"datePublished\":\"2021-02-10T20:13:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/84962f25a732459fa856bd8e0acc1161\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/84962f25a732459fa856bd8e0acc1161\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Die_Fortschrittsanzeige__geduldigeres_Warten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die Fortschrittsanzeige &#8211; geduldigeres Warten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Die Fortschrittsanzeige - geduldigeres Warten - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/","og_locale":"de_DE","og_type":"article","og_title":"Die Fortschrittsanzeige - geduldigeres Warten","og_description":"Gut Ding will Weile haben, denkt sich mancher Programmierer, wenn er bei der Programmierung eines Importvorgangs schon vermutet, dass der sp&auml;tere Benutzer seines Werks wohl die eine oder andere Tasse Kaffee trinken wird, bis die Daten korrekt in den Tabellen untergebracht sind. Bei l&auml;nger andauernden Vorg&auml;ngen ist es sinnvoll, dem Benutzer ehrlich mitzuteilen, dass der Vorgang noch l&auml;nger dauert. Er wird darauf aufmerksam gemacht, dass etwas passiert, und wartet geduldiger auf den Abschluss der Arbeit.","og_url":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T20:13:43+00:00","og_image":[{"url":"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Die Fortschrittsanzeige &#8211; geduldigeres Warten","datePublished":"2021-02-10T20:13:43+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/"},"wordCount":1626,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161","articleSection":["2002","4\/2002","Ergonomie und Benutzeroberfl\u00e4che","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/","url":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/","name":"Die Fortschrittsanzeige - geduldigeres Warten - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161","datePublished":"2021-02-10T20:13:43+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/84962f25a732459fa856bd8e0acc1161"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Die_Fortschrittsanzeige__geduldigeres_Warten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Die Fortschrittsanzeige &#8211; geduldigeres Warten"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000071"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000071\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}