{"id":55001559,"date":"2025-08-01T00:00:00","date_gmt":"2025-08-03T11:26:05","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1559"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"FormularTimer_in_Access_mit_VBA","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/","title":{"rendered":"Formular-Timer in Access mit VBA"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec\" width=\"1\" height=\"1\" alt=\"\"><b>Formular-Timer in Access k&ouml;nnen ganz unterschiedliche Aufgaben &uuml;bernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschr&auml;nkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gew&uuml;nschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschr&auml;nkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion ausl&ouml;sen, die Daten f&uuml;r eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgef&uuml;hrt, als dass die Daten bereits vorhanden sind. In diesem Fall k&ouml;nnen wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend gro&szlig;en Zeitintervall ausl&ouml;st, sodass alle Aktionen die notwendigen Daten zur Verf&uuml;gung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.<\/b><\/p>\n<h2>Grundlagen zum Formular-Timer<\/h2>\n<p>Der Formular-Timer von Access basiert auf den beiden Eigenschaften <b>TimerInterval<\/b> und <b>OnTimer<\/b>. Mit <b>TimerInterval<\/b> legen wir fest, in welchen Zeitintervallen das Ereignis <b>OnTimer<\/b> ausgel&ouml;st wird. Der Wert f&uuml;r <b>TimerInterval<\/b> wird in Millisekunden angegeben.<\/p>\n<p>Wenn wir also wollen, dass das <b>Timer<\/b>-Ereignis alle f&uuml;nf Sekunden ausgel&ouml;st wird, setzt Du <b>TimerInterval<\/b> auf 5000. Das Ereignis <b>OnTimer<\/b> enth&auml;lt dann den VBA-Code, der bei jedem Intervall ausgef&uuml;hrt werden soll.<\/p>\n<h2>Timer &uuml;ber die Eigenschaften einstellen<\/h2>\n<p>Die Eigenschaften <b>TimerInterval<\/b> und <b>OnTimer<\/b> k&ouml;nnen wir entweder direkt im Eigenschaftenblatt des Formulars einstellen oder per VBA zur Laufzeit setzen. Im Eigenschaftenblatt geben wir bei <b>Zeitgeberintervall<\/b> die Millisekunden an und bei <b>Bei Zeitgeber<\/b> w&auml;hlen wir den Eintrag <b>[Ereignisprozedur]<\/b> aus (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_04\/pic_1559_001.png\" alt=\"Einstellungen f&uuml;r einen Formular-Timer\" width=\"649,559\" height=\"406,7147\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Einstellungen f&uuml;r einen Formular-Timer<\/span><\/b><\/p>\n<p>Beim Einstellen der Eigenschaft <b>Zeitgeberintervall <\/b>haben wir gesehen, dass diese standardm&auml;&szlig;ig den Wert <b>0 <\/b>enth&auml;lt. Das bedeutet, dass der Zeitgeber nicht ausgel&ouml;st wird.<\/p>\n<p>Nun klicken wir f&uuml;r die Eigenschaft <b>Bei Zeitgeber <\/b>die Schaltfl&auml;che mit den drei Punkten an. Im nun erscheinenden VBA-Editor f&uuml;gen wir in diese Prozedur die folgenden Anweisungen ein:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Timer()\r\n     i = i + 1\r\n     Me.Caption = \"Z&auml;hler Zeitgeber: \" & i\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Die Variable <b>i <\/b>deklarieren wir ebenfalls in diesem Klassenmodul:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p>Wenn wir dieses Formular nun &ouml;ffnen, erhalten wir in der Titelleiste jede Sekunde ein Update mit dem jeweiligen Wert der Variablen <b>i<\/b> (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_04\/pic_1559_002.png\" alt=\"Formular mit Timer\" width=\"424,5589\" height=\"175,1821\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Formular mit Timer<\/span><\/b><\/p>\n<h2>Timer per VBA starten und stoppen<\/h2>\n<p>Wenn Sie den Timer per VBA steuern m&ouml;chten, k&ouml;nnen Sie die Eigenschaft <b>TimerInterval<\/b> direkt zur Laufzeit festlegen. M&ouml;chtest Du den Timer stoppen, setzt Du <b>TimerInterval<\/b> einfach auf <b>0<\/b>.<\/p>\n<p>Um ihn wieder zu starten, k&ouml;nnen wir die Eigenschaft <b>TimerInterval <\/b>einfach wieder auf den gew&uuml;nschten Wert in Millisekunden einstellen.<\/p>\n<p>Wir wollen dies mit zwei Schaltfl&auml;chen erledigen. Die erste Schaltfl&auml;che hei&szlig;t <b>cmdTimerStoppen <\/b>und soll den Timer anhalten. Die zweite hei&szlig;t <b>cmdTimerFortsetzen <\/b>und soll den Timer wieder starten.<\/p>\n<p>F&uuml;r das Ereignis <b>Beim Klicken<\/b> dieser Schaltfl&auml;chen hinterlegen wir jeweils eine Ereignisprozedur.<\/p>\n<p>Die Ereignisprozedur f&uuml;r <b>cmdTimerStoppen <\/b>lautet wie folgt und stellt die Eigenschaft <b>Zeitgeberintervall <\/b>auf <b>0 <\/b>ein:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdTimerStoppen_Click()\r\n     Me.TimerInterval = 0\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>F&uuml;r <b>cmdTimerFortsetzen <\/b>hinterlegen wir die folgende Prozedur, die einfach das Zeitgeberintervall wieder auf <b>1.000 <\/b>einstellt:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdTimerFortsetzen_Click()\r\n     Me.TimerInterval = 1000\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit erhalten wir das Ergebnis aus Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_04\/28-06-2025_08-43-41.PNG\" alt=\"Zwei Schaltfl&auml;chen zum Stoppen und Starten des Zeitgebers\" width=\"424,5589\" height=\"231,8586\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zwei Schaltfl&auml;chen zum Stoppen und Starten des Zeitgebers<\/span><\/b><\/p>\n<h2>Timer zur&uuml;cksetzen<\/h2>\n<p>Wir wollen den Timer auch noch zur&uuml;cksetzen k&ouml;nnen. Dazu f&uuml;gen wir eine dritte Schaltfl&auml;che namens <b>cmdTimerZuruecksetzen <\/b>hinzu, die wir mit der folgenden Ereignisprozedur ausstatten:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdTimerZuruecksetzen_Click()\r\n     i = 0\r\n     Me.Caption = \"Z&auml;hler Zeitgeber: \" & i\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit setzen wir den Wert von <b>i<\/b> wieder zur&uuml;ck &#8211; unabh&auml;ngig davon, ob der Zeitgeber gerade l&auml;uft. Damit der Titel des Formulars direkt auf den aktuellen Stand gebracht wird, stellen wir die Eigenschaft <b>Caption <\/b>entsprechend ein.<\/p>\n<h2>Beispiel Startformular<\/h2>\n<p>Ein Beispiel ist ein Formular, das beim Start der Anwendung angezeigt und nach einigen Sekunden ausgeblendet werden soll.<\/p>\n<p>Wir haben dazu ein Beispielformular namens <b>frmStart <\/b>in der Beispieldatenbank hinterlegt (siehe Bild 4), das wir f&uuml;r die Access-Option <b>Formular anzeigen <\/b>eintragen. Dadurch wird es direkt beim Starten der Anwendung ge&ouml;ffnet.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_04\/pic_1559_004.png\" alt=\"Startformular, das sich automatisch schlie&szlig;t\" width=\"424,5589\" height=\"256,9698\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Startformular, das sich automatisch schlie&szlig;t<\/span><\/b><\/p>\n<p>F&uuml;r die Eigenschaft <b>Zeitgeberintervall <\/b>tragen wir wieder den Wert <b>1.000 <\/b>ein.<\/p>\n<p>Der Code dieses Formulars sieht wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Long<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     i = 3\r\n     Me.txtFormularSchliesstIn = i & \" Sekunden\"\r\n<span style=\"color:blue;\">End Sub<\/span>\r\n<span style=\"color:blue;\">Private Sub <\/span>Form_Timer()\r\n     i = i - 1\r\n     Me.txtFormularSchliesstIn = i & \" Sekunden\"\r\n     <span style=\"color:blue;\">If <\/span>i = 0<span style=\"color:blue;\"> Then<\/span>\r\n         DoCmd.Close acForm, Me.Name\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Beim Laden stellen wir die verbleibenden Sekunden bis zum Schlie&szlig;en auf <b>3 <\/b>ein und zeigen diesen Wert direkt im Textfeld <b>txtFormularSchliesstIn <\/b>an.<\/p>\n<p>In der Ereignisprozedur <b>Form_Timer <\/b>subtrahieren wir jeweils den Wert <b>1 <\/b>vom aktuellen Wert der Variablen <b>i<\/b> und zeigen diesen Wert im Textfeld <b>txtFormularSchliesstIn <\/b>an. Au&szlig;erdem pr&uuml;fen wir, ob <b>i <\/b>bereits <b>0 <\/b>ist. In diesem Fall schlie&szlig;en wir das Startformular.<\/p>\n<h2>Beispiel f&uuml;r einen Form-Timer, um absichtlich Verz&ouml;gerungen herbeizuf&uuml;hren<\/h2>\n<p>Ein gutes Beispiel f&uuml;r den Einsatz eines Form-Timers ist eine Schnellsuche in einem Listenfeld. Wir haben ein Textfeld, in das der Benutzer den Suchbegriff eingeben kann. Normalerweise soll nach der Eingabe eines jeden Zeichens das Suchergebnis direkt gefiltert werden.<\/p>\n<p>Das kostet aber gerade im Netzwerk unn&ouml;tig Ressourcen, wenn der Benutzer nicht nur ein, sondern gleich mehrere Zeichen direkt hintereinander eingibt &#8211; wir wollen die Suche dann nur ausl&ouml;sen, wenn der Benutzer inneh&auml;lt und anscheinend die Eingabe beendet hat. Wir wollen dann warten, bis bei der Eingabe eine kurze Pause auftritt und erst dann das Suchergebnis aktualisieren.<\/p>\n<p>Wir verwenden ein Textfeld namens <b>txtSuche <\/b>und ein Listenfeld namens <b>lstMitarbeiter<\/b>, das zu Beginn mit den Daten einer Abfrage mit den Feldern <b>MitarbeiterID<\/b>, <b>Vorname <\/b>und <b>Nachname <\/b>der Tabelle <b>tblMitarbeiter <\/b>gef&uuml;llt ist (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2025_04\/pic_1559_005.png\" alt=\"Suche, die zeitverz&ouml;gert ausgef&uuml;hrt wird\" width=\"424,5589\" height=\"301,6373\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Suche, die zeitverz&ouml;gert ausgef&uuml;hrt wird<\/span><\/b><\/p>\n<p>Bei Eingabe eines Buchstaben soll direkt gesucht werden. Das w&uuml;rden wir mit der folgenden Ereignisprozedur f&uuml;r das Ereignis <b>Bei &Auml;nderung <\/b>des Textfeldes erledigen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>txtSuche_Change()\r\n     <span style=\"color:blue;\">Dim <\/span>strSuchtext<span style=\"color:blue;\"> As String<\/span>\r\n     strSuchtext = Me.txtSuche.Text\r\n     Me.lstMitarbeiter.RowSource = \"SELECT MitarbeiterID, \" _\r\n         & \"Vorname, Nachname FROM tblMitarbeiter \" _\r\n         & \"WHERE Vorname LIKE ''*\" & strSuchtext & \"*'' \" _\r\n         & \"OR Nachname LIKE ''*\" & strSuchtext & \"*''\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Hier wird das Suchergebnis aber immer direkt nach der Eingabe eines jeden Zeichens aktualisiert. <\/p>\n<p>Wir wollen aber eine Aktualisierung immer erst, wenn der Benutzer eine halbe Sekunde lang kein neues Zeichen eingegeben hat. Also deklarieren wir als Erstes den Suchtext au&szlig;erhalb der Prozedur:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>strSuchtext<span style=\"color:blue;\"> As String<\/span><\/pre>\n<p>Dann schreiben wir im Ereignis <b>Bei &Auml;nderung <\/b>den Suchtext aus dem Textfeld in die Variable <b>strSuchtext <\/b>und stellen den Timer auf eine halbe Sekunde ein (500 Millisekunden):<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>txtSuche_Change()\r\n     strSuchtext = Me.txtSuche.Text\r\n     Me.TimerInterval = 500\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Im Ereignis Bei Zeitgeber f&uuml;hren wir schlie&szlig;lich die Aktualisierung des Suchergebnisses aus und stellen dann das Zeitgeberintervall auf <b>0 <\/b>ein, damit danach nicht nochmals aktualisiert wird:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Timer()\r\n     Me.lstMitarbeiter.RowSource = \"SELECT MitarbeiterID, \" _\r\n         & \"Vorname, Nachname FROM tblMitarbeiter \" _\r\n         & \"WHERE Vorname LIKE ''*\" & strSuchtext & \"*'' \" _\r\n         & \"OR Nachname LIKE ''*\" & strSuchtext & \"*''\"\r\n     Me.TimerInterval = 0\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Durch die Eingabe weiterer Zeichen vor dem Ablauf von 500 Millisekunden wird der Timer immer wieder zur&uuml;ckgesetzt, wodurch der Benutzer eine weitere halbe Sekunde Zeit hat, um weitere Zeichen einzugeben &#8211; oder die Eingabe zu beenden und dann nach kurzer Zeit das Suchergebnis zu erhalten.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Mit dem Formular-Timer in Access k&ouml;nnen Sie regelm&auml;&szlig;ig VBA-Code ausf&uuml;hren, ohne dass der Benutzer aktiv werden muss. Sie steuern ihn ganz einfach &uuml;ber die Eigenschaft <b>TimerInterval<\/b> und das Ereignis <b>OnTimer<\/b>.<\/p>\n<p>Damit er&ouml;ffnen sich viele M&ouml;glichkeiten, Ihre Anwendungen dynamischer und interaktiver zu gestalten.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>FormularTimer.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/5623C77B-2C20-4C79-8443-8569D117BC65\/aiu_1559.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Formular-Timer in Access k&ouml;nnen ganz unterschiedliche Aufgaben &uuml;bernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschr&auml;nkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gew&uuml;nschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschr&auml;nkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion ausl&ouml;sen, die Daten f&uuml;r eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgef&uuml;hrt, als dass die Daten bereits vorhanden sind. In diesem Fall k&ouml;nnen wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend gro&szlig;en Zeitintervall ausl&ouml;st, sodass alle Aktionen die notwendigen Daten zur Verf&uuml;gung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.<\/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":[662025,66042025,44000023],"tags":[],"class_list":["post-55001559","post","type-post","status-publish","format-standard","hentry","category-662025","category-66042025","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Formular-Timer in Access mit VBA - 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\/FormularTimer_in_Access_mit_VBA\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Formular-Timer in Access mit VBA\" \/>\n<meta property=\"og:description\" content=\"Formular-Timer in Access k&ouml;nnen ganz unterschiedliche Aufgaben &uuml;bernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschr&auml;nkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gew&uuml;nschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschr&auml;nkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion ausl&ouml;sen, die Daten f&uuml;r eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgef&uuml;hrt, als dass die Daten bereits vorhanden sind. In diesem Fall k&ouml;nnen wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend gro&szlig;en Zeitintervall ausl&ouml;st, sodass alle Aktionen die notwendigen Daten zur Verf&uuml;gung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-03T11:26:05+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec\" \/>\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=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Formular-Timer in Access mit VBA\",\"datePublished\":\"2025-08-03T11:26:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/\"},\"wordCount\":1198,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e24840f695584ed79f59cdb2225b3aec\",\"articleSection\":[\"2025\",\"4\\\/2025\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/\",\"name\":\"Formular-Timer in Access mit VBA - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e24840f695584ed79f59cdb2225b3aec\",\"datePublished\":\"2025-08-03T11:26:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e24840f695584ed79f59cdb2225b3aec\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/e24840f695584ed79f59cdb2225b3aec\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FormularTimer_in_Access_mit_VBA\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Formular-Timer in Access mit VBA\"}]},{\"@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":"Formular-Timer in Access mit VBA - 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\/FormularTimer_in_Access_mit_VBA\/","og_locale":"de_DE","og_type":"article","og_title":"Formular-Timer in Access mit VBA","og_description":"Formular-Timer in Access k&ouml;nnen ganz unterschiedliche Aufgaben &uuml;bernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschr&auml;nkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gew&uuml;nschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschr&auml;nkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion ausl&ouml;sen, die Daten f&uuml;r eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgef&uuml;hrt, als dass die Daten bereits vorhanden sind. In diesem Fall k&ouml;nnen wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend gro&szlig;en Zeitintervall ausl&ouml;st, sodass alle Aktionen die notwendigen Daten zur Verf&uuml;gung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.","og_url":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/","og_site_name":"Access im Unternehmen","article_published_time":"2025-08-03T11:26:05+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Formular-Timer in Access mit VBA","datePublished":"2025-08-03T11:26:05+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/"},"wordCount":1198,"commentCount":1,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec","articleSection":["2025","4\/2025","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/","url":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/","name":"Formular-Timer in Access mit VBA - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec","datePublished":"2025-08-03T11:26:05+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/e24840f695584ed79f59cdb2225b3aec"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/FormularTimer_in_Access_mit_VBA\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Formular-Timer in Access mit VBA"}]},{"@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\/55001559","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=55001559"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001559\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}