{"id":55000690,"date":"2009-12-01T00:00:00","date_gmt":"2020-05-22T22:18:24","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=690"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Flexible_Datumstextfelder","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/","title":{"rendered":"Flexible Datumstextfelder"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Bis Access 2003 wiesen Textfelder, die an Datumsfelder gebunden waren, &uuml;berhaupt keine besonderen Eigenschaften auf. Mit Access 2007 &auml;nderte sich dies: Immerhin erscheint hier ein Kalender-Symbol neben dem Textfeld, wenn dieses den Fokus hat, und bietet eine Hilfe f&uuml;r die schnelle Datumsauswahl an. Mit der L&ouml;sung aus diesem Beitrag statten Sie Datumstextfelder aller Access-Versionen seit 2000 mit weiteren n&uuml;tzlichen Features aus.<\/b><\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Beispieldatenbank<\/p>\n<p>Die Beispieltabelle zu diesem Beitrag <b>tblDatum <\/b>enth&auml;lt schlicht zwei Felder: <b>DatumID <\/b>dient als Prim&auml;rschl&uuml;ssel und <b>Beispieldatum <\/b>enth&auml;lt das Feld, an das wir gleich das Datumstextfeld des Beispielformulars binden. Dieses Formular hei&szlig;t <b>frmDatum <\/b>und ist &uuml;ber die Eigenschaft <b>Datenherkunft <\/b>an die Tabelle <b>tblDatum <\/b>gebunden. Im Detailbereich zeigt es die beiden einzigen Felder dieser Tabelle an (siehe Bild 1).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_06\/Datumstextfeld-web-images\/pic001_opt.jpeg\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Entwurfsansicht des Beispielformulars zur Eingabe von Datumsangaben<\/span><\/b><\/p>\n<p><b>Vereinfachungen f&uuml;r die Datumseingabe<\/b><\/p>\n<p>Wir schauen uns im Rahmen dieses Beitrags drei kleine Hilfen f&uuml;r die einfache Datumseingabe an:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Eingabe des aktuellen Datums per Leertaste<\/li>\n<li class=\"aufz-hlung\">&auml;ndern eines Datumselements mit der <b>Nach oben<\/b>-Taste<\/li>\n<li class=\"aufz-hlung\">&auml;ndern eines Datumselements mit der <b>Nach unten<\/b>-Taste<\/li>\n<\/ul>\n<p>Die Funktion, die wir mit der Leertaste abbilden m&ouml;chten, ist eigentlich bereits in Access eingebaut: Sie brauchen einfach nur die Tastenkombination <b>Strg + Umschalt + Komma (,) <\/b>zu bet&auml;tigen, schon f&uuml;gt Access das Datum in das aktuelle Steuerelement ein. F&uuml;r die Uhrzeit erreichen Sie dies &uuml;brigens mit <b>Strg + Umschalt + Punkt (.)<\/b>. Beide Tastenkombinationen sind, das erkennt auch der Laie schnell, nur schwer zu merken, wenn man nicht t&auml;glich damit arbeitet.<\/p>\n<p><b>Aktuelles Datum per Leerzeile<\/b><\/p>\n<p>Also verwenden wir einfach die Leertaste als Tastenkombination f&uuml;r die Eingabe des aktuellen Datums. Dies k&ouml;nnen wir uns erlauben, denn in einer Datumsangabe hat ein Leerzeichen nat&uuml;rlich nichts zu suchen.<\/p>\n<p>Tasteneingaben fangen wir generell mit den <b>KeyDown<\/b>&#8211; und <b>KeyUp<\/b>-Methoden von Formularen und Steuerelementen ab. Wann welches dieser Ereignisse ausgel&ouml;st wird, finden Sie am einfachsten heraus, indem Sie die folgenden beiden Ereignisprozeduren f&uuml;r die entsprechenden Ereigniseigenschaften des Textfelds <b>Beispieldatum<\/b> hinterlegen:<\/p>\n<pre>Private Sub Beispieldatum_KeyDown(KeyCode _\r\n    As Integer, Shift As Integer)\r\n    Debug.Print &quot;KeyDown&quot;, KeyCode, Shift\r\n    End Sub\r\nPrivate Sub Beispieldatum_KeyUp(KeyCode _\r\n    As Integer, Shift As Integer)\r\n    Debug.Print &quot;KeyUp&quot;, KeyCode, Shift\r\n    End Sub<\/pre>\n<p>Nun platzieren Sie das Access-Fenster so &uuml;ber (oder auch neben) das VBA-Fenster, dass der Direktbereich des VBA-Fensters sichtbar ist. Wenn Sie den Fokus auf das Textfeld <b>Beispieldatum <\/b>legen und Zeichen mit der Tastatur eingeben, sehen Sie nicht nur, wann welches Ereignis ausgel&ouml;st wird, sondern auch, welche Werte die Parameter <b>Keycode <\/b>und <b>Shift <\/b>dieser Prozeduren liefern &#8211; die Leertaste entspricht beispielsweise dem KeyCode <b>32<\/b>. Auf diese Weise erkennen wir au&szlig;erdem, zu welchem Zeitpunkt ein Zeichen im Textfeld erscheint, n&auml;mlich nach dem Herunterdr&uuml;cken der betroffenen Taste.<\/p>\n<p>Dies nutzen wir aus, um bei Bet&auml;tigung der Leertaste das aktuelle Datum einzuf&uuml;gen, und zwar durch folgende &auml;nderung der Ereignisprozedur <b>Beispieldatum_KeyDown<\/b>:<\/p>\n<pre>Private Sub Beispieldatum_KeyDown(KeyCode _\r\n    As Integer, Shift As Integer)\r\n    Select Case KeyCode\r\n    Case 32\r\n    Me!Beispieldatum = Date\r\n    KeyCode = 0\r\n    Case Else\r\n    Debug.Print KeyCode, Shift\r\n    End Select\r\n    End Sub<\/pre>\n<p>Dadurch f&uuml;llt die Prozedur das Textfeld mit dem aktuellen Datum und setzt den Parameter <b>KeyCode <\/b>auf den Wert <b>0<\/b>. Indem Sie diesen Parameter innerhalb der Ereignisprozedur &auml;ndern, k&ouml;nnen Sie in die Nachrichtenkette eingreifen: Statt des urspr&uuml;nglichen Werts, beispielsweise <b>32 <\/b>f&uuml;r ein Leerzeichen, wird dann der Wert <b>0 <\/b>als bet&auml;tigte Taste weitergeleitet &#8211; was bedeutet, dass keine Taste gedr&uuml;ckt wurde.<\/p>\n<p>Dies ist unbedingt n&ouml;tig, weil Access sonst zuerst, wie gew&uuml;nscht, das Datum in das Textfeld eintr&auml;gt, dann aber das urspr&uuml;ngliche Zeichen, also das Leerzeichen, an das Textfeld schickt. Dies kann je nach Einstellung dazu f&uuml;hren, dass das Leerzeichen das gerade eingegebene Datum &uuml;berschreibt.<\/p>\n<p><b>Vor und zur&uuml;ck<\/b><\/p>\n<p>Nun f&uuml;gen wir eine weitere Vereinfachung hinzu: Der Benutzer soll durch Bet&auml;tigen der <b>Nach oben<\/b>&#8211; und <b>Nach unten<\/b>-Tasten das Datum einstellen k&ouml;nnen. Dabei soll das Element, auf dem sich die Einf&uuml;gemarke aktuell befindet, jeweils um eins erh&ouml;ht oder vermindert werden.<\/p>\n<p>Wenn sich der Cursor also auf dem Monat befindet und der Benutzer auf <b>Nach oben <\/b>dr&uuml;ckt, soll der Monat um eins erh&ouml;ht werden. <\/p>\n<p>Mit der Ausgabe der obigen Prozedur im Direktfenster ermitteln wir, welche Werte f&uuml;r den Parameter <b>KeyCode<\/b> der <b>Nach oben<\/b>&#8211; und <b>Nach unten<\/b>-Taste entsprechen. Dann erweitern wir die <b>Select Case<\/b>-Anweisung wie in Listing 1.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Einstellen des Datums in einem Textfeld per Nach oben- und Nach unten-Taste<\/p>\n<pre>Private Sub Beispieldatum_KeyDown(KeyCode As Integer, Shift As Integer)\r\n    Dim intSelStart As Integer\r\n    Dim intPosDate As Integer\r\n    Dim intFaktor As Integer\r\n    Dim strIntervall As String\r\n    Select Case KeyCode\r\n    Case 32\r\n    Me!Beispieldatum = Date\r\n    KeyCode = 0\r\n    Case 38, 40\r\n    Select Case KeyCode\r\n    Case 38 ''Nach oben\r\n    intFaktor = 1\r\n    Case 40 ''Nach unten\r\n    intFaktor = -1\r\n    End Select\r\n    intSelStart = Me!Beispieldatum.SelStart\r\n    intPosDate = Len(Left(Me!Beispieldatum, intSelStart)) _\r\n    - Len(Replace(Left(Me!Beispieldatum, intSelStart), &quot;.&quot;, &quot;&quot;))\r\n    Select Case intPosDate\r\n    Case 0\r\n    strIntervall = &quot;d&quot;\r\n    Case 1\r\n    strIntervall = &quot;m&quot;\r\n    Case 2\r\n    strIntervall = &quot;yyyy&quot;\r\n    End Select\r\n    Me!Beispieldatum = DateAdd(strIntervall, intFaktor, Me!Beispieldatum)\r\n    KeyCode = 0\r\n    Me.Beispieldatum.SelStart = intSelStart\r\n    Case Else\r\n    Debug.Print &quot;KeyDown&quot;, KeyCode, Shift\r\n    End Select\r\n    Debug.Print Beispieldatum.Format\r\n    End Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Da fast alle Anweisungen, die beim Bet&auml;tigen der <b>Nach oben<\/b>&#8211; oder der <b>Nach unten<\/b>-Taste aufgerufen werden, identisch sind, enth&auml;lt die Prozedur zun&auml;chst einen <b>Case<\/b>-Zweig, der <b>KeyCode <\/b>auf die Werte <b>38 <\/b>(<b>Nach oben<\/b>) und <b>40 <\/b>(<b>Nach unten<\/b>) pr&uuml;ft. Darin befindet sich eine weitere <b>Select Case<\/b>-Anweisung, welche die Variable <b>intFaktor <\/b>je nach gedr&uuml;ckter Taste auf <b>1 <\/b>(<b>Nach oben<\/b>) oder <b>-1 <\/b>(<b>Nach unten<\/b>) einstellt. Dieser Faktor legt fest, ob eine Einheit (ein Tag, ein Monat oder ein Jahr) zum angezeigten Datum hinzugef&uuml;gt oder davon abgezogen wird.<\/p>\n<p>Als N&auml;chstes ermittelt die Prozedur, an welcher Stelle innerhalb des Datums sich die Einf&uuml;gemarke befindet: auf dem Tag, dem Monat oder dem Jahr Die Vorgehensweise geht davon aus, dass das Datum im Format <b>dd.mm.yyyy <\/b>angezeigt wird. Eine f&uuml;r andere Formate geeignete Variante m&uuml;sste entweder umgeschrieben oder aber wesentlich flexibler gestaltet werden, was den Rahmen dieses Beitrags sprengen w&uuml;rde.<\/p>\n<p>Wir ermitteln also mit der Eigenschaft <b>SelStart <\/b>die aktuelle Position der Einf&uuml;gemarke und berechnen dann, welcher Datumsteil sich auf der aktuellen Position befindet. Dazu schneiden wir den Teil links von der Einf&uuml;gemarke aus und untersuchen, wie viele Punkte sich in diesem Bereich befinden. Dazu subtrahieren wir die Zeichenkettenl&auml;nge ohne Punkte von der Zeichenkettenl&auml;nge mit Punkten. Ergibt dies den Wert <b>0<\/b>, dann befindet sich die Einf&uuml;gemarke auf dem Tag, bei <b>1 <\/b>auf dem Monat und bei <b>2 <\/b>auf dem Jahr.<\/p>\n<p>Davon abh&auml;ngig legen wir einen Ausdruck f&uuml;r die Beschreibung des Intervalls f&uuml;r die folgende Datums&auml;nderung fest: <b>d <\/b>f&uuml;r Tag, <b>m <\/b>f&uuml;r Monat und <b>yyyy <\/b>f&uuml;r das Jahr.<\/p>\n<p>Fehlt nur noch, dass wir die gewonnenen Informationen in einem Aufruf der <b>DateAdd<\/b>-Funktion verwenden und so das aus der bet&auml;tigten Taste resultierende Datum zur&uuml;ck in das Datumsfeld schreiben. Schlie&szlig;lich schicken wir <b>0<\/b> als <b>KeyCode <\/b>zur&uuml;ck und platzieren die Einf&uuml;gemarke wieder an der gleichen Stelle wie zuvor (dies ist n&ouml;tig, weil diese durch das Einf&uuml;gen des neu berechneten Datums verschoben wird).<\/p>\n<p><b>Wiederverwendbares Datumstextfeld<\/b><\/p>\n<p>Im Prinzip sind wir an dieser Stelle fertig. Allerdings m&ouml;chten Sie diese Prozedur vielleicht mit mehr als nur einem Datumstextfeld einsetzen. Dies bedeutet im ersten Schritt ein wenig mehr Aufwand, ist aber ein gutes Beispiel f&uuml;r die Wiederverwendung von Code.<\/p>\n<p>Und das Beste ist: Wenn Sie die Vorgehensweise einmal verstanden haben, k&ouml;nnen Sie diese immer wieder nutzen. Die grunds&auml;tzliche Vorgehensweise sieht so aus:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Das Formular mit dem Datumstextfeld wird ge&ouml;ffnet.<\/li>\n<li class=\"aufz-hlung\">Die durch das Ereignis <b>Beim Laden <\/b>ausgel&ouml;ste Ereignisprozedur instanziert ein Objekt auf Basis der Klasse <b>clsDateboxes <\/b>und verwendet dessen <b>AddDatebox<\/b>-Methode, um das gew&uuml;nschte Datumsfeld zu &uuml;bergeben.<\/li>\n<\/ul>\n<p>Der einzige Code, den Sie dazu in das Formular einsetzen m&uuml;ssen, ist dieser:<\/p>\n<pre>Dim objDateboxes As clsDateboxes\r\nPrivate Sub Form_Load()\r\n    Set objDateboxes = New clsDateboxes\r\n    objDateboxes.AddDatebox Me!Beispieldatum\r\n    End Sub<\/pre>\n<p>Die Objektvariable <b>objDateboxes <\/b>wird im Modulkopf au&szlig;erhalb der Ereignisprozedur untergebracht, weil sie auch nach Ablauf der Ereignisprozedur noch ben&ouml;tigt wird. Wenn das Formular mehr als ein Datumstextfeld enth&auml;lt, f&uuml;gen Sie einfach weitere <b>AddDatebox<\/b>-Anweisungen zur <b>Beim Laden<\/b>-Ereignisprozedur hinzu. Vorbehaltlich des Inhalts der Klasse <b>clsDateboxes <\/b>und einer weiteren Klasse namens <b>clsDatebox <\/b>brauchen Sie nichts weiter als diese paar Codezeilen pro Formular.<\/p>\n<p>In der Beispieldatenbank finden Sie ein mit der hier vorgestellten Funktion ausgestattetes Formular unter dem Namen <b>frmDatumMitKlasse<\/b>.<\/p>\n<p><b>Unter der Motorhaube<\/b><\/p>\n<p>Schauen wir uns nun noch an, was im Hintergrund geschieht. Dazu ist zun&auml;chst ein Blick auf den Inhalt der Klasse <b>clsDateboxes <\/b>n&ouml;tig, der wie folgt aussieht:<\/p>\n<pre>Private m_Dateboxes As Collection\r\nPrivate m_Datebox As clsDatebox\r\nPrivate Sub Class_Initialize()\r\n    Set m_Dateboxes = New Collection\r\n    End Sub\r\nPublic Sub AddDatebox(txt As TextBox)\r\nSet m_Datebox = New clsDatebox\r\nSet m_Datebox.Datebox = txt\r\nm_Dateboxes.Add m_Datebox\r\nEnd Sub<\/pre>\n<p>Die Variable <b>m_Dateboxes <\/b>erh&auml;lt ein <b>Collection<\/b>-Objekt, das Referenzen auf beliebig viele Objekte aufnehmen kann. In diesem Fall sollen Objekte des Typs <b>clsDatebox <\/b>(beachten Sie die Singularform des Namens gegen&uuml;ber der Klasse <b>clsDateboxes<\/b>).<\/p>\n<p>Wenn, wie weiter oben beschrieben, die <b>Beim Laden<\/b>-Ereignisprozedur ein neues Objekt auf Basis der Klasse <b>clsDateboxes <\/b>erzeugt, l&ouml;st dies die Ereignisprozedur <b>Initialize <\/b>aus. Diese erstellt lediglich das <b>Collection<\/b>-Objekt.<\/p>\n<p>Schlie&szlig;lich ruft die <b>Beim Laden<\/b>-Ereignisprozedur die <b>AddDatebox<\/b>-Methode dieser Klasse auf. Diese erzeugt wiederum ein neues Objekt des Typs <b>clsDatebox<\/b>, dessen Bauplan in der Klasse <b>clsDatebox <\/b>enthalten ist. Dann weist sie der Eigenschaft <b>Datebox <\/b>dieser Klasse das im Parameter der Methode <b>AddDatebox <\/b>angegebene Textfeld zu. Der Verweis auf das so gef&uuml;llte Objekt wird schlie&szlig;lich zum <b>Collection<\/b>-Objekt <b>m_Dateboxes <\/b>hinzugef&uuml;gt, wo es gegebenenfalls mit weiteren Instanzen der Klasse <b>clsDatebox <\/b>auf seinen Einsatz wartet.<\/p>\n<p>Die Klasse <b>clsDatebox<\/b> wiederum enth&auml;lt eine Objektvariable, die mit dem Schl&uuml;sselwort <b>WithEvents <\/b>deklariert ist und die mit der Eigenschaft <b>Datebox <\/b>von der Klasse <b>clsDateboxes <\/b>&uuml;bergebene Textbox aufnimmt:<\/p>\n<pre>Private WithEvents m_Textbox As TextBox<\/pre>\n<p>Die Eigenschaft <b>Datebox <\/b>wird als <b>Property Set<\/b>-Eigenschaft deklariert. Beim F&uuml;llen dieser Eigenschaft reicht diese nicht nur den Verweis auf das betroffene Textfeld an die Objektvariable <b>m_Textbox <\/b>weiter, sondern sie schreibt auch noch den Ausdruck <b>[Event Procedure] <\/b>in die Eigenschaft <b>OnKeyDown <\/b>dieses Textfelds:<\/p>\n<pre>Public Property Set Datebox(txt As TextBox)\r\nSet m_Textbox = txt\r\nm_Textbox.OnKeyDown = &quot;[Event Procedure]&quot;\r\nEnd Property<\/pre>\n<p>Dies ist gleichbedeutend mit dem Eintragen von <b>[Ereignisprozedur] <\/b>in die Eigenschaft <b>Bei Taste ab <\/b>im Eigenschaftsfenster des Steuerelements. Beides sorgt daf&uuml;r, dass Access beim Ausl&ouml;sen des entsprechenden Ereignisses im Klassenmodul des Formulars nachschaut, ob es eine entsprechende Ereignisprozedur gibt, die ausgef&uuml;hrt werden soll. In diesem Fall wird diese Ereignisprozedur im Klassenmodul <b>clsDatebox <\/b>deklariert und auch dort ausgel&ouml;st. Diese Ereignisprozedur entspricht prinzipiell der des Formulars <b>frmDatum<\/b>, unterscheidet sich allerdings durch die Referenzen auf das betroffene Textfeld (s. Listing 2).<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Mit der hier vorgestellten L&ouml;sung erweitern Sie Textfelder zur Anzeige von Datumsangaben um interessante Funktionen. Wenn Sie weitere Ereignisprozeduren hinzuf&uuml;gen m&ouml;chten, legen Sie einfach weitere Ereignisprozeduren f&uuml;r das Objekt <b>m_Textbox <\/b>an und f&uuml;gen weitere Zeilen &Atilde;  la <b>m_Textbox.OnKeyDown = &quot;[Event Procedure]&quot; <\/b>zur <b>Property Set<\/b>-Prozedur hinzu.<\/p>\n<p>Nat&uuml;rlich k&ouml;nnen Sie die Technik zur Wiederverwendbarkeit von Code auch f&uuml;r andere Steuerelemente wie Schaltfl&auml;chen oder Kombinationsfelder verwenden. Lassen Sie Ihrer Fantasie freien Lauf und optimieren Sie Ihre Anwendungen!<\/p>\n<p class=\"kastentabelleheader\">Listing 2: Textfelderweiterung in ausgelagerter Form<\/p>\n<pre>Private Sub m_Textbox_KeyDown(KeyCode As Integer, Shift As Integer)\r\nDim intSelStart As Integer\r\nDim intPosDate As Integer\r\nDim intFaktor As Integer\r\nDim strIntervall As String\r\nSelect Case KeyCode\r\nCase 32\r\nm_Textbox.Value = Date\r\nKeyCode = 0\r\nm_Textbox.SelStart = Len(m_Textbox.Value)\r\nCase 38, 40\r\nSelect Case KeyCode\r\nCase 38 ''Nach oben\r\nintFaktor = 1\r\nCase 40 ''Nach unten\r\nintFaktor = -1\r\nEnd Select\r\nintSelStart = m_Textbox.SelStart\r\nintPosDate = Len(Left(m_Textbox, intSelStart)) - Len(Replace(Left(m_Textbox, _\r\nintSelStart), &quot;.&quot;, &quot;&quot;))\r\nSelect Case intPosDate\r\nCase 0: strIntervall = &quot;d&quot;\r\nCase 1: strIntervall = &quot;m&quot;\r\nCase 2: strIntervall = &quot;yyyy&quot;\r\nEnd Select\r\nm_Textbox.Value = DateAdd(strIntervall, intFaktor, m_Textbox)\r\nKeyCode = 0\r\nm_Textbox.SelStart = intSelStart\r\nEnd Select\r\nEnd Sub<\/pre>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Datumstextfeld.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{24D20194-6C73-4D0C-8A02-4966FE662D7A}\/aiu_690.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bis Access 2003 wiesen Textfelder, die an Datumsfelder gebunden waren, &uuml;berhaupt keine besonderen Eigenschaften auf. Mit Access 2007 &auml;nderte sich dies: Immerhin erscheint hier ein Kalender-Symbol neben dem Textfeld, wenn dieses den Fokus hat, und bietet eine Hilfe f&uuml;r die schnelle Datumsauswahl an. Mit der L&ouml;sung aus diesem Beitrag statten Sie Datumstextfelder aller Access-Versionen seit 2000 mit weiteren n&uuml;tzlichen Features aus.<\/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":[662009,66062009,44000028],"tags":[],"class_list":["post-55000690","post","type-post","status-publish","format-standard","hentry","category-662009","category-66062009","category-Ergonomie_und_Benutzeroberflaeche"],"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>Flexible Datumstextfelder - 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\/Flexible_Datumstextfelder\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flexible Datumstextfelder\" \/>\n<meta property=\"og:description\" content=\"Bis Access 2003 wiesen Textfelder, die an Datumsfelder gebunden waren, &uuml;berhaupt keine besonderen Eigenschaften auf. Mit Access 2007 &auml;nderte sich dies: Immerhin erscheint hier ein Kalender-Symbol neben dem Textfeld, wenn dieses den Fokus hat, und bietet eine Hilfe f&uuml;r die schnelle Datumsauswahl an. Mit der L&ouml;sung aus diesem Beitrag statten Sie Datumstextfelder aller Access-Versionen seit 2000 mit weiteren n&uuml;tzlichen Features aus.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T22:18:24+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9\" \/>\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=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Flexible Datumstextfelder\",\"datePublished\":\"2020-05-22T22:18:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/\"},\"wordCount\":1748,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/d4d8ae4a52ab474a8b119afd9b9ce5b9\",\"articleSection\":[\"2009\",\"6\\\/2009\",\"Ergonomie und Benutzeroberfl\u00e4che\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/\",\"name\":\"Flexible Datumstextfelder - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/d4d8ae4a52ab474a8b119afd9b9ce5b9\",\"datePublished\":\"2020-05-22T22:18:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/d4d8ae4a52ab474a8b119afd9b9ce5b9\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/d4d8ae4a52ab474a8b119afd9b9ce5b9\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Flexible_Datumstextfelder\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Flexible Datumstextfelder\"}]},{\"@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":"Flexible Datumstextfelder - 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\/Flexible_Datumstextfelder\/","og_locale":"de_DE","og_type":"article","og_title":"Flexible Datumstextfelder","og_description":"Bis Access 2003 wiesen Textfelder, die an Datumsfelder gebunden waren, &uuml;berhaupt keine besonderen Eigenschaften auf. Mit Access 2007 &auml;nderte sich dies: Immerhin erscheint hier ein Kalender-Symbol neben dem Textfeld, wenn dieses den Fokus hat, und bietet eine Hilfe f&uuml;r die schnelle Datumsauswahl an. Mit der L&ouml;sung aus diesem Beitrag statten Sie Datumstextfelder aller Access-Versionen seit 2000 mit weiteren n&uuml;tzlichen Features aus.","og_url":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T22:18:24+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Flexible Datumstextfelder","datePublished":"2020-05-22T22:18:24+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/"},"wordCount":1748,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9","articleSection":["2009","6\/2009","Ergonomie und Benutzeroberfl\u00e4che"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/","url":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/","name":"Flexible Datumstextfelder - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9","datePublished":"2020-05-22T22:18:24+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/d4d8ae4a52ab474a8b119afd9b9ce5b9"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Flexible_Datumstextfelder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Flexible Datumstextfelder"}]},{"@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\/55000690","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=55000690"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000690\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}