{"id":55000679,"date":"2009-08-01T00:00:00","date_gmt":"2020-05-22T22:32:06","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=679"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Tipps_und_Tricks_42009","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/","title":{"rendered":"Tipps und Tricks 4\/2009"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Die Tipps-und-Tricks-Sammlung von Access im Unternehmen wird diesmal um das Verkn&uuml;pfen von Tabellen per Code erweitert. Au&szlig;erdem zeigen wir Ihnen, wie Sie Ereignisprozeduren vom Eigenschaftsfenster aus ganz schnell anlegen. Wer gern gelegentlich mit instabilen Datenbanken arbeitet, muss diese hin und wieder mal dekompilieren &#8211; das geht mit unserer Decompile-Datenbank per Doppelklick und l&auml;sst sich ganz schnell einrichten. Schlie&szlig;lich k&uuml;mmern wir uns um das Verhalten von Textfeldern beim Erhalt des Fokus: Komplett markieren, zum Start oder ans Ende<\/b><\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Tabellen verkn&uuml;pfen per Code<\/p>\n<p>Eine Tabellenverkn&uuml;pfung legen Sie normalerweise &uuml;ber den entsprechenden Men&uuml;befehl von Access an (unter Access 2007 zum Beispiel &uuml;ber den Ribbon-Eintrag <b>Externe Daten|Access<\/b>). Wenn Sie diese Aufgabe etwa beim Start der Frontenddatenbank automatisch ausf&uuml;hren lassen m&ouml;chten, brauchen Sie ein paar Zeilen Code.<\/p>\n<p>Am einfachsten geht dies mit dem VBA-Pendant zum Men&uuml;befehl, und zwar mit der <b>TransferDatabase<\/b>-Methode des <b>DoCmd<\/b>-Objekts:<\/p>\n<pre>DoCmd.TransferDatabase acLink, &quot;Microsoft Access&quot;, &quot;&lt;Quelldatenbank&gt;&quot;, acTable, &quot;&lt;Name der Verk&uuml;pfung&gt;&quot;, &quot;&lt;Name der Quelltabelle&gt;&quot;<\/pre>\n<p>Dies klappt in der Regel ganz gut, f&uuml;hrt aber in Einzelf&auml;llen zu Unannehmlichkeiten, zum Beispiel beim Einsatz unter der Access 2007-Runtime und dort speziell bei Verwendung von Backenddatenbanken, die nicht auf dem gleichen Rechner wie das Frontend liegen. Dort erscheint n&auml;mlich die gleiche Hinweismeldung, die auch beim &Ouml;ffnen von Datenbankdateien aus nicht vertrauensw&uuml;rdigen Ordnern erscheint &#8211; und zwar bei jedem Aufruf der <b>TransferDatabase<\/b>-Methode.<\/p>\n<p>Um dies zu umgehen, brauchen Sie ein paar Zeilen Code mehr:<\/p>\n<pre>Dim db As DAO.Database\r\nDim tdf As DAO.TableDef\r\nSet db = CurrentDb\r\nSet tdf = db.CreateTableDef(&quot;tblVersion&quot;, 0,\r\n&quot;tbl_VersionFE&quot;, &quot;;DATABASE=z:\\ShopSoft.accdb&quot;)\r\ndb.TableDefs.Append tdf\r\ndb.TableDefs.Refresh\r\nSet tdf = Nothing\r\nSet db = Nothing<\/pre>\n<p>Die <b>CreateTableDef<\/b>-Methode schafft es, eine Verkn&uuml;pfung ohne nervende Hinweismeldungen herzustellen. Die folgende <b>Append<\/b>-Methode f&uuml;gt die noch im leeren Raum stehende Verkn&uuml;pfung zur Auflistung <b>TableDefs <\/b>hinzu und die <b>Refresh<\/b>-Methode sorgt schlie&szlig;lich daf&uuml;r, dass die Verkn&uuml;pfung auch gleich im Datenbankfenster erscheint.<\/p>\n<p><b>Ereignisprozedur per Mausklick<\/b><\/p>\n<p>Wenn Sie eine Ereignisprozedur anlegen, geschieht dies normalerweise durch die folgenden Schritte:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Sie markieren das betroffene Element.<\/li>\n<li class=\"aufz-hlung\">Sie zeigen das Eigenschaftsfenster an, sofern dieses noch nicht aktiviert ist.<\/li>\n<li class=\"aufz-hlung\">Sie w&auml;hlen die Registerseite <b>Ereignis <\/b>aus.<\/li>\n<li class=\"aufz-hlung\">Dann w&auml;hlen Sie entweder aus dem Kombinationsfeld den Eintrag <b>[Ereignisprozedur] <\/b>aus und klicken auf die Schaltfl&auml;che mit den drei Punkten oder Sie klicken direkt auf diese Schaltfl&auml;che und w&auml;hlen aus dem nun erscheinenden Dialog den Eintrag <b>Codegenerator <\/b>aus (siehe Bild 1).<\/li>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_04\/TippsUndTricks-web-images\/pic001_opt.jpeg\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Auswahl eines Werkzeugs zum F&uuml;llen einer Ereigniseigenschaft<\/span><\/b><\/p>\n<li class=\"aufz-hlung\">Schlie&szlig;lich landen Sie im VBA-Editor und k&ouml;nnen den dort bereits angelegten Prozedurrumpf f&uuml;llen.<\/li>\n<\/ul>\n<p>Es gibt mindestens zwei Alternativen zu dieser Vorgehensweise, die schneller sein k&ouml;nnen: <\/p>\n<ul>\n<li class=\"aufz-hlung\">Sie &ouml;ffnen den VBA-Editor direkt, &ouml;ffnen das Klassenmodul des jeweiligen Formulars oder Berichts, w&auml;hlen im Kombinationsfeld links oben im Codefenster den Namen des betroffenen Steuerelements und im rechten Kombinationsfeld die ben&ouml;tigte Ereignisprozedur aus.<\/li>\n<li class=\"aufz-hlung\">Sie aktivieren eine spezielle Option von Access und brauchen dann beim Anlegen der Ereignisprozedur &uuml;ber das Eigenschaftsfenster nur noch auf die Schaltfl&auml;che mit den drei Punkten f&uuml;r die gew&uuml;nschte Eigenschaft zu klicken.<\/li>\n<\/ul>\n<p>Letztere Version d&uuml;rfte die schnellste sein. Die Option, die Sie dazu einstellen m&uuml;ssen, hei&szlig;t <b>Immer Ereignisprozeduren verwenden<\/b>.<\/p>\n<p>Sie finden diese unter Access 2003 und &auml;lter im Optionen-Dialog (<b>Extras|Optionen<\/b>) im Bereich <b>Formulare\/Berichte<\/b> und unter Access 2007 in den Access-Optionen im Bereich <b>Objekt-Designer|Formulare\/Berichte<\/b>.<\/p>\n<p><b>Folgende Nullen statt f&uuml;hrender Nullen<\/b><\/p>\n<p>Ein Kunde wollte mal IDs mit Nullen bis auf f&uuml;nf Stellen aufgef&uuml;llt haben. Die Zahlen <b>1<\/b>, <b>27<\/b>, <b>392 <\/b>und <b>4433 <\/b>sollten also so aussehen: <b>10000<\/b>, <b>27000<\/b>, <b>39200<\/b>, <b>44330<\/b>. Falls Sie auch mal so etwas brauchen, k&ouml;nnen Sie dies nat&uuml;rlich per VBA l&ouml;sen &#8211; im vorliegenden Fall sollte dieses Format aber einfach in einer Abfrage untergebracht werden. Nat&uuml;rlich kann man dort auch eine VBA-Funktion integrieren, aber das muss ja nicht sein.<\/p>\n<p>Stattdessen verwenden wir die ganz selten genutzte <b>StrReverse<\/b>-Funktion, die eine Zeichenkette umdreht. Dies f&uuml;hrt zwar nicht direkt zum Ziel, aber auf folgendem Umweg schon.<\/p>\n<p>Sie drehen also zun&auml;chst die Zahlen mit folgender Funktion um:<\/p>\n<pre>StrReverse(Zahl)<\/pre>\n<p>F&uuml;r die Zahl <b>392 <\/b>ergibt dies <b>293<\/b>. Jetzt kommt die &uuml;blicherweise zum Anf&uuml;gen f&uuml;hrender Nullen verwendete <b>Format<\/b>-Funktion ins Spiel. Wenn Sie einer Zahl so viele Nullen voranstellen m&ouml;chten, bis diese f&uuml;nf Stellen aufweist, geht dies etwa so:<\/p>\n<pre>Format(Zahl, &quot;00000&quot;)<\/pre>\n<p><!--30percent--><\/p>\n<p>Wenn Sie f&uuml;r Zahl den obigen Ausdruck einsetzen, sieht das so aus:<\/p>\n<pre>Format(StrReverse(Zahl), &quot;00000&quot;)<\/pre>\n<p>Das Ergebnis f&uuml;r <b>392 <\/b>lautet nun <b>00293<\/b>. Sehen Sie es Wir brauchen nun nur noch erneut die <b>StrReverse<\/b>-Funktion einzusetzen und erhalten das gew&uuml;nschte Ergebnis:<\/p>\n<pre>StrReverse(Format(StrReverse(Zahl), &quot;00000&quot;))<\/pre>\n<p><b>Decompile ganz einfach<\/b><\/p>\n<p>Es kann aus verschiedenen Gr&uuml;nden notwendig sein, das VBA-Projekt einer Datenbankdatei zu dekompilieren, das hei&szlig;t, es in einen Zustand zur&uuml;ckzuversetzen, der eine erneute Kompilierung des VBA-Projekts erfordert.<\/p>\n<p>Unter <b>http:\/\/www.trigeminal.com\/usenet\/usenet004.asp <\/b>finden Sie ausf&uuml;hrliche Informationen zu diesem Thema.<\/p>\n<p>Wichtig ist zu wissen, dass der Code eines VBA-Projekts immer in kanonischer und in kompilierter Form vorliegt. Der kanonische Code ist dabei der, den Sie auch editieren k&ouml;nnen, der kompilierte Code ist das, was Access schlie&szlig;lich ausf&uuml;hrt. Daher wird der Code vor der Ausf&uuml;hrung immer kompiliert.<\/p>\n<p>Dieses Kompilat kann aber korrupt sein und Fehler enthalten, was eine erneute Kompilierung erforderlich machen kann. Und auch wenn Sie einzelne Teile eines VBA-Projekts, wie etwa Module durch schlichtes &auml;ndern einer einzigen Codezeile zu einem Kandidaten f&uuml;r eine Kompilierung machen, reicht dies noch nicht aus, um das komplette Projekt erneut zu kompilieren. Dies erreichen Sie durch das &Ouml;ffnen der Datenbankdatei mit dem Kommandozeilenparameter <b>\/decompile<\/b>.<\/p>\n<p>Die komplette Anweisung sieht unter einer Access 2007-Standardinstallation etwa so aus:<\/p>\n<pre>&quot;c:\\Programme\\Microsoft Office\\Office12\\MSAccess.exe&quot; &quot;&lt;Datenbankpfad und -name&gt;&quot; \/decompile<\/pre>\n<p>Wenn Sie an einem Projekt arbeiten und dieses h&auml;ufiger abst&uuml;rzt, kann das Dekompilieren ein ad&auml;quates Mittel zum Reparieren des Projekts sein. Sie k&ouml;nnen sich dann eine kleine Batch-Datei namens <b>Decompile.bat <\/b>erstellen und die obige Zeile dort eintragen.<\/p>\n<p>Ein Doppelklick auf <b>Decompile.bat <\/b>sorgt dann f&uuml;r das Dekompilieren des VBA-Projekts in der Datenbankdatei und normalerweise f&uuml;r ein problemloses Weiterarbeiten damit.<\/p>\n<p>Programmierer m&ouml;chten aber gelegentlich eine neue Version ihrer Anwendung erstellen und legen dazu ein neues Verzeichnis mit dem neuen Versionsstand an, den sie dann weiterhin einsetzen.<\/p>\n<p>Die <b>Decompile.bat<\/b>-Datei &uuml;bernimmt man dabei wie alle anderen ben&ouml;tigten Dateien in das neue Verzeichnis &#8211; allerdings m&uuml;ssen Sie dann nochdas Verzeichnis der Zieldatenbank &auml;ndern.<\/p>\n<p>Sie k&ouml;nnen n&auml;mlich nicht einfach nur den Datenbanknamen angeben und darauf hoffen, dass <b>msaccess.exe <\/b>den im Aufruf angegebenen Dateinamen automatisch im Verzeichnis der Batch-Datei sucht. Das ist nicht der Fall und bei einem Umzug der Access- und der Batch-Datei steht auch die &auml;nderung des Pfades in der Batch-Datei an.<\/p>\n<p>Wenn man das mal vergisst, kann man mit <b>Decompile.bat <\/b>noch so oft dekompilieren &#8211; das VBA-Projekt in der vermeintlich dekompilierten Access-Datenbank wird sein Fehlverhalten nicht aufgeben. Das ist auch klar, denn der Aufruf in <b>Decompile.bat<\/b> bezieht sich ja auch noch auf die Access-Datenbank in einem anderen Verzeichnis.<\/p>\n<p>Kein Problem f&uuml;r den ambitionierten Access-Entwickler: Wir bauen uns einfach eine kleine Access-Datenbank, welche die notwendigen Schritte f&uuml;r uns durchf&uuml;hrt und sich dabei auf die Datenbank im aktuellen Verzeichnis bezieht. Dazu legen Sie in einer neuen, leeren Datenbank zun&auml;chst ein neues Makro mit den beiden Aufrufen aus Bild 2 an.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2009_04\/TippsUndTricks-web-images\/pic002_opt.jpeg\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Dieses Makro ruft Code zum Dekompilieren einer Datenbankdatei auf.<\/span><\/b><\/p>\n<p>Die in diesem Makro aufgerufene Routine <b>DecompileDB <\/b>sieht so aus:<\/p>\n<pre>Public Function DecompileDB()\r\n    Dim strDatenbank As String\r\n    Dim strPfad As String\r\n    Dim strAccess As String\r\n    strDatenbank = Mid(CurrentProject.Name, 2)\r\n    strPfad = CurrentProject.Path &amp; &quot;\\&quot;\r\n    strAccess = &quot;c:\\Programme\\Microsoft Office\\\r\n    Office12\\MSAccess.exe&quot;\r\n    Shell Chr(34) &amp; strAccess &amp; Chr(34) &amp; &quot; &quot; _\r\n    &amp; Chr(34) &amp; strPfad &amp; strDatenbank _\r\n    &amp; Chr(34) &amp; &quot;\/Decompile&quot;\r\nEnd Function<\/pre>\n<p>Sie schreibt zun&auml;chst den Pfad und den Namen der <b>MSAccess.exe<\/b>, den Datenbankpfad und den Datenbanknamen in entsprechende Variablen.<\/p>\n<p>Den Datenbankpfad liefert die Funktion <b>CurrentProject.Path<\/b>, den Datenbanknamen die Funktion <b>Mid(CurrentProject.Name, 2)<\/b>. Aber damit erhalten wir doch den Datenbanknamen der aktuellen Datenbank und nicht den der zu dekompilierenden Datenbank &#8211; und das auch noch ohne das erste Zeichen<\/p>\n<p>Nun, damit das funktioniert, geben Sie der Dekompilier-Datenbank einfach den gleichen Namen wie der zu dekompilierenden Datenbank &#8211; mit einem vorangestellten Zeichen wie etwa dem Unterstrich (<b>_<\/b>).<\/p>\n<p>Wenn die Zieldatenbank <b>Beispiel.accdb <\/b>hei&szlig;t, sollte die Datenbank mit der oben beschriebenen Funktion also <b>_Beispiel.accdb <\/b>hei&szlig;en.<\/p>\n<p>Diese Datenbank k&ouml;nnen Sie nun zusammen mit der eigentlichen Projektdatenbank von Verzeichnis zu Verzeichnis kopieren &#8211; sie dekompiliert immer die gew&uuml;nschte Datenbank.<\/p>\n<p><b>Inhalt von Text- oder Kombinationsfeldern bei Fokuserhalt markieren<\/b><\/p>\n<p>Es geschieht oft, dass der aktuelle Inhalt eines Text- oder Kombinationsfelds bei Erhalt des Fokus komplett markiert werden soll. Der Grund liegt meist darin, dass der Benutzer den vorhandenen Inhalt nicht &auml;ndern, sondern komplett &uuml;berschreiben m&ouml;chte &#8211; ein Suchfeld ist ein praxisnahes Beispiel.<\/p>\n<p>Sicher m&uuml;ssen Sie von Fall zu Fall unterscheiden, ob der Benutzer eher den vorhandenen Inhalt bearbeiten oder diesen &uuml;berschreiben m&ouml;chte. Das Positionieren der Einf&uuml;gemarke an der Stelle, die der Benutzer mit der Maus anklickt, ist Standard, anders sieht es aus, wenn der Benutzer das Feld &uuml;ber die Tastatur angesteuert hat: Hier gibt die in den Access-Optionen zu findende Einstellung <b>Cursorverhalten bei Eintritt in Feld <\/b>den Ausschlag, die Sie auf die Werte <b>Ganzes Feld markieren<\/b>, <b>Zum Anfang des Felds gehen <\/b>oder <b>Zum Ende des Felds gehen <\/b>einstellen k&ouml;nnen.<\/p>\n<p>Die Option finden Sie unter Access 2003 und &auml;lter im Optionen-Dialog (Men&uuml;eintrag <b>Extras|Optionen<\/b>) im Bereich <b>Tastatur<\/b> und unter Access 2007 in den Access-Optionen (Office-Button, Schaltfl&auml;che <b>Access-Optionen<\/b>) im Bereich <b>Erweitert|Bearbeiten<\/b>.<\/p>\n<p>Sie k&ouml;nnen diese Einstellungen zur Laufzeit per VBA umstellen, indem Sie die folgende Anweisung verwenden:<\/p>\n<pre>SetOption &quot;Behavior Entering Field&quot;, &lt;Wert&gt;<\/pre>\n<p>F&uuml;r <b>&lt;Wert&gt; <\/b>geben Sie einen der folgenden Zahlenwerte an:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>0<\/b>: Ganzes Feld markieren<\/li>\n<li class=\"aufz-hlung\"><b>1<\/b>: Zum Anfang des Felds gehen<\/li>\n<li class=\"aufz-hlung\"><b>2<\/b>: Zum Ende des Felds gehen<\/li>\n<\/ul>\n<p>Das Verhalten k&ouml;nnen Sie nat&uuml;rlich auch nur f&uuml;r einzelne Steuerelemente einstellen. Daf&uuml;r gibt es zwei Alternativen: Entweder Sie lesen den Wert der Option vorher ein, setzen dann den gew&uuml;nschten Wert und setzen die Option anschlie&szlig;end wieder auf den Ausgangswert zur&uuml;ck oder Sie gehen den manuellen Weg.<\/p>\n<p>Dazu verwenden wir die Eigenschaften <b>SelStart <\/b>und <b>SelLength <\/b>des entsprechenden Steuerelements. <b>SelStart <\/b>gibt die erste Position der Markierung an und <b>SelLength <\/b>die L&auml;nge der Markierung in Zeichen. Theoretisch ben&ouml;tigen Sie nur die beiden folgenden Anweisungen:<\/p>\n<pre>&lt;Steuerelement&gt;.SelStart = 0\r\n&lt;Steuerelement&gt;.SelLength = 10000<\/pre>\n<p>Durch das Setzen eines gro&szlig;en Werts wie 10.000 sparen Sie sich die Pr&uuml;fung der tats&auml;chlichen L&auml;nge des im Textfeld enthaltenen Strings &uuml;ber eine Anweisung wie <b>Len(&lt;Steuerelement&gt;)<\/b>.<\/p>\n<p>Weiterhin m&uuml;ssen Sie noch wissen, dass Sie die relevanten Eigenschaften nur setzen k&ouml;nnen, wenn das Steuerelement den Fokus hat. Damit steht und f&auml;llt die Auswahl der Ereigniseigenschaft, deren Prozedur das Markieren des Texts durchf&uuml;hren soll.<\/p>\n<p>Hier wird es nun ein wenig unlogisch: Normalerweise sollte man annehmen, dass das Ereignis <b>Bei Fokuserhalt <\/b>ein geeigneter Platz w&auml;re, doch das funktioniert aus verschiedenen Gr&uuml;nden nicht. Eigentlich sollte dies funktionieren:<\/p>\n<pre>Private Sub cboKunden_GotFocus()\r\n    Me!cboKunden.SelStart = 0\r\n    Me!cboKunden.SelLength = 10000\r\n    End Sub<\/pre>\n<p>Das tut es aber nur, wenn man per Schaltfl&auml;che in dieses Feld gelangt. Wenn Sie mit der Maus in das Feld klicken, sorgen weitere Ereignisse offenbar daf&uuml;r, dass die Markierung wieder aufgehoben wird. Verwenden wir testhalber eine andere Ereignisprozedur, die sp&auml;ter ausgel&ouml;st wird &#8211; beispielsweise durch das Ereignis <b>Bei Maustaste auf<\/b>:<\/p>\n<pre>Private Sub cboKunden_MouseUp( _\r\n    Button As Integer, _\r\n    Shift As Integer, _\r\n    X As Single, Y As Single)\r\n    Me!cboKunden.SelStart = 0\r\n    Me!cboKunden.SelLength = 10000\r\n    End Sub<\/pre>\n<p>Dies bringt zwar den gew&uuml;nschten Effekt, allerdings wird der Inhalt bei jedem Mausklick markiert. Somit ist es nicht mehr m&ouml;glich, die Cursormarkierung nach dem ersten Anklicken an einem bestimmten Punkt zu positionieren.<\/p>\n<p>Dies gelingt mit der folgenden Kombination. Dazu deklarieren wir diese <b>Boolean<\/b>-Variable:<\/p>\n<pre>Dim bolcboKundeGotFocus As Boolean<\/pre>\n<p>Sie wird beim Fokuserhalt mit dem Wert <b>True <\/b>gef&uuml;llt:<\/p>\n<pre>Private Sub cboKunden_GotFocus()\r\n    bolcboKundeGotFocus = True\r\n    End Sub<\/pre>\n<p>Die durch das Loslassen der Maustaste ausgel&ouml;ste Routine fragt den Inhalt dieser Variablen ab.<\/p>\n<p>Ist der Wert <b>True<\/b>, wird der Inhalt des Felds markiert und die Variable auf den Wert <b>False <\/b>eingestellt:<\/p>\n<pre>Private Sub cboKunden_MouseUp( _\r\n    Button As Integer, _\r\n    Shift As Integer, _\r\n    X As Single, _\r\n    Y As Single)\r\n    If bolcboKundeGotFocus Then\r\n        Me!cboKunden.SelStart = 0\r\n        Me!cboKunden.SelLength = 10000\r\n        bolcboKundeGotFocus = False\r\n    End If\r\n    End Sub<\/pre>\n<p>Auf diese Weise wirkt das Markieren des Steuerelements nur beim ersten Mausklick nach dem Fokuserhalt, anschlie&szlig;end kann der Benutzer die Cursor-Position individuell festlegen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>_Decompile.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{60C68A7C-0690-481C-8BE1-A562687F2161}\/aiu_679.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Tipps-und-Tricks-Sammlung von Access im Unternehmen wird diesmal um das Verkn&uuml;pfen von Tabellen per Code erweitert. Au&szlig;erdem zeigen wir Ihnen, wie Sie Ereignisprozeduren vom Eigenschaftenfenster aus ganz schnell anlegen. Wer gern mal mit instabilen Datenbanken arbeitet, muss diese hin und wieder mal dekompilieren &#8211; das geht mit unserer Decompile-Datenbank per Doppelklick und l&auml;sst sich ganz schnell einrichten. Schlie&szlig;lich k&uuml;mmern wir uns um das Verhalten von Textfeldern beim Erhalt des Fokus: Komplett markieren, zum Start oder ans Ende<\/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,66042009,44000004],"tags":[],"class_list":["post-55000679","post","type-post","status-publish","format-standard","hentry","category-662009","category-66042009","category-Tipps_und_Tricks"],"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>Tipps und Tricks 4\/2009 - 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\/Tipps_und_Tricks_42009\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tipps und Tricks 4\/2009\" \/>\n<meta property=\"og:description\" content=\"Die Tipps-und-Tricks-Sammlung von Access im Unternehmen wird diesmal um das Verkn&uuml;pfen von Tabellen per Code erweitert. Au&szlig;erdem zeigen wir Ihnen, wie Sie Ereignisprozeduren vom Eigenschaftenfenster aus ganz schnell anlegen. Wer gern mal mit instabilen Datenbanken arbeitet, muss diese hin und wieder mal dekompilieren - das geht mit unserer Decompile-Datenbank per Doppelklick und l&auml;sst sich ganz schnell einrichten. Schlie&szlig;lich k&uuml;mmern wir uns um das Verhalten von Textfeldern beim Erhalt des Fokus: Komplett markieren, zum Start oder ans Ende\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T22:32:06+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e\" \/>\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\\\/Tipps_und_Tricks_42009\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Tipps und Tricks 4\\\/2009\",\"datePublished\":\"2020-05-22T22:32:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/\"},\"wordCount\":2023,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/857280b7460647e498f6b3bf20c09a6e\",\"articleSection\":[\"2009\",\"4\\\/2009\",\"Tipps und Tricks\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/\",\"name\":\"Tipps und Tricks 4\\\/2009 - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/857280b7460647e498f6b3bf20c09a6e\",\"datePublished\":\"2020-05-22T22:32:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/857280b7460647e498f6b3bf20c09a6e\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/857280b7460647e498f6b3bf20c09a6e\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Tipps_und_Tricks_42009\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tipps und Tricks 4\\\/2009\"}]},{\"@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":"Tipps und Tricks 4\/2009 - 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\/Tipps_und_Tricks_42009\/","og_locale":"de_DE","og_type":"article","og_title":"Tipps und Tricks 4\/2009","og_description":"Die Tipps-und-Tricks-Sammlung von Access im Unternehmen wird diesmal um das Verkn&uuml;pfen von Tabellen per Code erweitert. Au&szlig;erdem zeigen wir Ihnen, wie Sie Ereignisprozeduren vom Eigenschaftenfenster aus ganz schnell anlegen. Wer gern mal mit instabilen Datenbanken arbeitet, muss diese hin und wieder mal dekompilieren - das geht mit unserer Decompile-Datenbank per Doppelklick und l&auml;sst sich ganz schnell einrichten. Schlie&szlig;lich k&uuml;mmern wir uns um das Verhalten von Textfeldern beim Erhalt des Fokus: Komplett markieren, zum Start oder ans Ende","og_url":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T22:32:06+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e","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\/Tipps_und_Tricks_42009\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Tipps und Tricks 4\/2009","datePublished":"2020-05-22T22:32:06+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/"},"wordCount":2023,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e","articleSection":["2009","4\/2009","Tipps und Tricks"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/","url":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/","name":"Tipps und Tricks 4\/2009 - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e","datePublished":"2020-05-22T22:32:06+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/857280b7460647e498f6b3bf20c09a6e"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Tipps_und_Tricks_42009\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Tipps und Tricks 4\/2009"}]},{"@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\/55000679","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=55000679"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000679\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}