{"id":55000913,"date":"2013-12-01T00:00:00","date_gmt":"2020-05-22T21:31:52","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=913"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Bibliotheken_und_Verweise_untersuchen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/","title":{"rendered":"Bibliotheken und Verweise untersuchen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn Sie Access-Anwendungen programmieren, nutzen Sie verschiedene Bibliotheken wie etwa die VBA-Bibliothek, die Access-Bibliothek, die DAO-Bibliothek et cetera. In diesem Beitrag schauen wir uns an, wie Sie an wichtige Informationen &uuml;ber diese Bibliotheken gelangen und was dies beispielsweise im Hinblick auf das Ermitteln der neuen Features einer neuen Access-Version bedeutet.<\/b><\/p>\n<p><b>Wo stecken die Bibliotheken<\/b><\/p>\n<p>Als Access-Entwickler wissen Sie nat&uuml;rlich, wie Sie den Speicherort der im aktuellen VBA-Projekt eingebundenen Bibliotheken finden &#8211; n&auml;mlich im <b>Verweise<\/b>-Dialog, den Sie im VBA-Editor mit dem Men&uuml;punkt <b>Extras|Verweise<\/b> &ouml;ffnen.<\/p>\n<p>Allerdings hilft dieser Dialog in vielen F&auml;llen nicht wirklich weiter &#8211; er ist schlicht nicht breit genug, um den Pfad des Verweises anzuzeigen (s. Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_001.png\" alt=\"Verweise auf die aktuell eingebundenen Bibliotheken\" width=\"400\" height=\"309,2077\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Verweise auf die aktuell eingebundenen Bibliotheken<\/span><\/b><\/p>\n<p><b>Pfade und weitere Informationen einlesen<\/b><\/p>\n<p>Wer des VBA einigerma&szlig;en m&auml;chtig ist, hat wohl schon davon geh&ouml;rt, dass man auch programmatisch auf die Verweise zugreifen kann &#8211; und zwar &uuml;ber die <b>References<\/b>-Auflistung des <b>Application<\/b>-Objekts. Um dieses zu nutzen, erstellen wir schnell eine Tabelle namens <b>tblBibliotheken<\/b>, welche die Informationen &uuml;ber die referenzierten Bibliotheken aufnehmen soll. Diese Tabelle sieht im Entwurf wie in Bild 2 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_002.png\" alt=\"Die Tabelle tblBibliotheken nimmt Informationen zu den Verweisen der aktuellen Datenbank auf.\" width=\"325\" height=\"179,5454\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Die Tabelle tblBibliotheken nimmt Informationen zu den Verweisen der aktuellen Datenbank auf.<\/span><\/b><\/p>\n<p>Zum Anzeigen der eingelesenen Daten erstellen wir zwei Formulare &#8211; ein Hauptformular namens <b>frmBibliotheken <\/b>und ein Unterformular namens <b>sfmBibliotheken<\/b>. Beide sollen an die Tabelle <b>tblBibliotheken <\/b>gebunden sein, wobei das Hauptformular allerdings die Details und das Unterformular die vollst&auml;ndige Liste der Verweise liefern soll. <\/p>\n<p>Deshalb f&uuml;gen Sie dem Detailbereich des Unterformulars <b>sfmBibliotheken <\/b>zun&auml;chst nur das Feld <b>Bezeichnung <\/b>der Datenherkunft hinzu. Das Hauptformular nimmt zwei Schaltfl&auml;chen auf, deren Funktion wir im Anschluss erl&auml;utern. Au&szlig;erdem f&uuml;gen Sie diesem das Unterformular hinzu und ziehen alle Felder der Datenherkunft mit Ausnahme des Prim&auml;rschl&uuml;sselfeldes <b>BibliothekID <\/b>in einen eingerahmten Bereich. Das Ergebnis sieht schlie&szlig;lich wie in Bild 3 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_003.png\" alt=\"Formular und Unterformular zur Anzeige der Bibliotheken in der Entwurfsansicht\" width=\"525\" height=\"264,2809\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Formular und Unterformular zur Anzeige der Bibliotheken in der Entwurfsansicht<\/span><\/b><\/p>\n<p><b>Bibliotheken-Tabelle f&uuml;llen<\/b><\/p>\n<p>Bevor das Formular Daten anzeigen kann, m&uuml;ssen Sie die Tabelle <b>tblBibliotheken <\/b>mit den Informationen &uuml;ber die referenzierten Bibliotheken f&uuml;llen. Dies erledigt die Prozedur, die durch das Ereignis <b>Beim Klicken <\/b>der linken Schaltfl&auml;che namens <b>cmdEinlesen <\/b>ausgel&ouml;st wird. Diese Prozedur sieht wie in Listing 1 aus.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdEinlesen_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>ref<span style=\"color:blue;\"> As <\/span>Reference\r\n     <span style=\"color:blue;\">Dim <\/span>strSQL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     db.Execute \"DELETE FROM tblBibliotheken\", dbFailOnError\r\n     For Each ref In Application.References\r\n         <span style=\"color:blue;\">With<\/span> ref\r\n             strSQL = \"INSERT INTO tblBibliotheken(Bezeichnung, Eingebaut, Pfad, BibliothekGUID, Art, &quot; _\r\n                 &amp; &quot;Major, Minor) VALUES(''\" & .Name & \"'', \" & CLng(.BuiltIn) & \", ''\" & .FullPath _\r\n                 & \"'', ''\" & .Guid & \"'', \" & .Kind & \", ''\" & .Major & \"'', ''\" & .Minor & \"'')\"\r\n             db.Execute strSQL, dbFailOnError\r\n         End <span style=\"color:blue;\">With<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> ref\r\n     Me!sfmBibliotheken.Form.Requery\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Einlesen der referenzierten Bibliotheken<\/span><\/b><\/p>\n<p>Die Prozedur deklariert einige Variablen, darunter die Variable <b>ref <\/b>des Typs <b>Reference<\/b>. Dar&uuml;ber greifen Sie auf die Verweise zu. Zu Beginn leert die Prozedur die Tabelle <b>tblBibliotheken <\/b>mit dem Aufruf einer entsprechenden <b>DELETE<\/b>-Anweisung.<\/p>\n<p>In einer <b>For Each<\/b>-Schleife &uuml;ber die <b>References<\/b>-Auflistung des <b>Application<\/b>-Objekts durchl&auml;uft die Prozedur dann alle enthaltenen Elemente. Innerhalb der Schleife setzt die Prozedur in der Variablen <b>strSQL <\/b>eine SQL-Anweisung zusammen, welche die folgenden Eigenschaften des <b>Reference<\/b>-Objekts in die Tabelle <b>tblBibliotheken <\/b>schreibt:<\/p>\n<ul>\n<li><b>Name<\/b>: Name der Bibliothek<\/li>\n<li><b>BuiltIn<\/b>: Boolean-Wert, der angibt, ob der Verweis auf die Bibliothek eingebaut ist &#8211; und dementsprechend nicht entfernt werden kann<\/li>\n<li><b>FullPath<\/b>: Pfad zur Bibliotheksdatei<\/li>\n<li><b>Guid<\/b>: Eindeutiger Kennzeichner der Bibliothek<\/li>\n<li><b>Kind<\/b>: Art der Bibliothek. Es gibt zwei m&ouml;gliche Werte: <b>vbext_rk_TypeLib <\/b>(<b>0<\/b>) entspricht einer Typbibliothek, <b>vbext_rk_Project <\/b>(<b>1<\/b>) einem eingebundenen VBA-Projekt.<\/li>\n<li><b>Major<\/b>: Hauptversion der Bibliothek<\/li>\n<li><b>Minor<\/b>: Nebenversion der Bibliothek<\/li>\n<\/ul>\n<p>Nach dem Durchlaufen aller Verweise aktualisiert die Prozedur noch das Unterformular. Das Ergebnis sieht beispielsweise wie in Bild 4 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_004.png\" alt=\"Liste der Verweise und Details des aktuell angezeigten Verweises nach dem Einlesen\" width=\"575\" height=\"248,3639\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Liste der Verweise und Details des aktuell angezeigten Verweises nach dem Einlesen<\/span><\/b><\/p>\n<p><b>Haupt- und Unterformular synchronisieren<\/b><\/p>\n<p>Fehlt noch eine Kleinigkeit: Wenn Sie auf einen der Eintr&auml;ge des Unterformulars klicken, soll das Hauptformular die Details zu diesem Datensatz anzeigen. Dazu f&uuml;gen Sie zur Prozedur <b>Form_Load<\/b>, die beim Laden des Formulars ausgel&ouml;st wird, die folgende Zeile hinzu:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\r\n     <span style=\"color:blue;\">Set<\/span> Me.Recordset = _\r\n         Me!sfmBibliotheken.Form.Recordset\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies synchronisiert den jeweils aktuellen Datensatz in beide Richtungen. Wenn Sie einen Datensatz im Unterformular ausw&auml;hlen, wird dieser im Hauptformular angezeigt und umgekehrt.<\/p>\n<p><b>Wo ist die korrekte Bezeichnung<\/b><\/p>\n<p>Wenn Sie sich den <b>Verweise<\/b>-Dialog ins Ged&auml;chtnis rufen, stellen Sie fest, dass dieser wesentlich aussagekr&auml;ftigere Bezeichnungen liefert als die Eigenschaft Name &#8211; mit <b>VBA <\/b>und <b>Access <\/b>l&auml;sst sich ja noch etwas anfangen, aber <b>stdole <\/b>h&ouml;rt sich kryptisch an.<\/p>\n<p>Irgendwo m&uuml;ssen aber doch auch die entsprechenden Bezeichnungen aus dem <b>Verweise<\/b>-Dialog wie <b>Visual Basic for Applications<\/b>, <b>Microsoft Access 14.0 Object Library <\/b>oder <b>OLE Automatisch <\/b>abrufbar sein<\/p>\n<p>Und das ist auch der Fall: Es gibt n&auml;mlich noch eine weitere <b>References<\/b>-Auflistung mit entsprechenden <b>Reference<\/b>-Objekten. Diese stellt die Bibliothek <b>Microsoft Visual Basic for Applications Extensibility 5.3 <\/b>bereit, auf die wir nun einen Verweis hinzuf&uuml;gen.<\/p>\n<p>Wir wollen die lange Version der <b>Bezeichnung <\/b>unter einem neuen Feld namens Beschreibung in der Tabelle <b>tblBibliotheken <\/b>speichern. Damit das Formular entweder die Beschreibung oder, falls diese nicht verf&uuml;gbar ist, die Bezeichnung anzeigt, erstellen wir eine neue Abfrage als Datenherkunft. Diese sieht wie in Bild 5 aus und enth&auml;lt ein Feld mit folgendem Ausdruck:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_005.png\" alt=\"Abfrage, die nach Bedarf die Bezeichnung oder die Beschreibung liefert\" width=\"575\" height=\"376,8907\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Abfrage, die nach Bedarf die Bezeichnung oder die Beschreibung liefert<\/span><\/b><\/p>\n<pre>Bezeichnung: Nz([Beschreibung];[tblBibliotheken].[Bezeichnung])<\/pre>\n<p>Dieses neue Feld <b>Bezeichnung <\/b>pr&uuml;ft den Inhalt des Feldes <b>Beschreibung<\/b>. Ist dieses nicht leer, wird der Inhalt dieses Feldes zur&uuml;ckgegeben, sonst der Inhalt des Feldes <b>Bezeichnung<\/b>. Damit kein Zirkelbezug ausgel&ouml;st wird, verweist die Funktion auf <b>[tblBibliotheken].[Bezeichnung] <\/b>statt nur auf <b>[Bezeichnung]<\/b>.<\/p>\n<p>Ersetzen Sie nun im Haupt- und im Unterformular die Datenherkunft <b>tblBibliotheken <\/b>durch <b>qryBibliotheken<\/b>, damit jederzeit die korrekten Daten angezeigt werden.<\/p>\n<p><b>Lange Bezeichnung einlesen<\/b><\/p>\n<p>Nun fehlt allerdings noch eine Prozedur, mit der Sie die lange Bezeichnung der Bibliothek einlesen k&ouml;nnen. Dazu rollen wir die zuvor erstellte Prozedur neu auf und legen diese f&uuml;r das Ereignis <b>Beim Klicken <\/b>der zweiten Schaltfl&auml;che <b>cmdEinlesenII <\/b>an (s. Listing 2).<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdEinlesenII_Click()\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>ref<span style=\"color:blue;\"> As <\/span>VBIDE.Reference\r\n     <span style=\"color:blue;\">Dim <\/span>strSQL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objProject<span style=\"color:blue;\"> As <\/span>VBIDE.VBProject\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     db.Execute \"DELETE FROM tblBibliotheken\", dbFailOnError\r\n     For Each objProject In VBE.VBProjects\r\n         <span style=\"color:blue;\">If <\/span>objProject.FileName = CurrentDb.Name<span style=\"color:blue;\"> Then<\/span>\r\n             <span style=\"color:blue;\">Exit For<\/span>\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> objProject\r\n     For Each ref In objProject.References\r\n         <span style=\"color:blue;\">With<\/span> ref\r\n             strSQL = \"INSERT INTO tblBibliotheken(Bezeichnung, Eingebaut, Pfad, BibliothekGUID, &quot; _\r\n                 &amp; &quot;Art, Major, Minor, Beschreibung) VALUES(''\" & .Name & \"'', \" & CLng(.BuiltIn) _\r\n                 & \", ''\" & .FullPath & \"'', ''\" & .Guid & \"'', \" & .Type & \", ''\" & .Major & \"'', ''\" _\r\n                 & .Minor & \"'', ''\" & .Description & \"'')\"\r\n             db.Execute strSQL, dbFailOnError\r\n         End <span style=\"color:blue;\">With<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> ref\r\n     Me!sfmBibliotheken.Form.Requery\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Einlesen der referenzierten Bibliotheken &uuml;ber die Elemente der VBE-Bibliothek <\/span><\/b><\/p>\n<p>Die Prozedur deklariert eine zus&auml;tzliche Variable namens <b>objProject <\/b>mit dem Typ <b>VBIDE.VBProject<\/b>. Dieses soll zun&auml;chst mit einem Verweis auf das VBA-Projekt der aktuellen Datenbank gef&uuml;llt werden. Normalerweise sollte man meinen, dass es ausreicht, das Projekt etwa mit folgender Anweisung zu referenzieren:<\/p>\n<pre><span style=\"color:blue;\">Set<\/span> objProject = VBE.ActiveVBProject<\/pre>\n<p>Wenn Sie allerdings zuf&auml;llig zuvor ein Access-Add-In genutzt haben, zeigt der VBA-Editor auch dessen VBA-Projekt an &#8211; und dann liefert <b>ActiveVBProject <\/b>nicht mehr zuverl&auml;ssig das Projekt der aktuell ge&ouml;ffneten Access-Datenbank.<\/p>\n<p>Diesen ermittelt die Prozedur in einer <b>For Each<\/b>-Schleife &uuml;ber alle aktuell geladenen VBA-Projekte. Wenn die Eigenschaft <b>FileName <\/b>des VBA-Projekts mit der Eigenschaft <b>Name <\/b>der mit <b>CurrentDb <\/b>referenzierten (und gerade ge&ouml;ffneten) Datenbank &uuml;bereinstimmt, haben Sie das richtige VBA-Projekt erwischt und die Schleife kann mit der Referenz auf dieses Projekt verlassen werden.<\/p>\n<p>Die Variable <b>ref <\/b>ist diesmal als <b>VBIDE.Reference <\/b>deklariert und wir durchlaufen damit die <b>References<\/b>-Auflistung des soeben ermittelten und mit <b>objProject <\/b>referenzierten VBA-Projekts.<\/p>\n<p>In den Eigenschaften des <b>Reference<\/b>-Objekts der <b>VBIDE<\/b>-Klasse findet sich dann auch noch eine weitere Eigenschaft namens <b>Description<\/b>, welche die volle Bezeichnung enth&auml;lt, wie sie auch im <b>Verweise<\/b>-Dialog erscheint.<\/p>\n<p>Au&szlig;erdem gibt es einen weiteren kleinen Unterschied: Die Art des Verweises liefert hier die Eigenschaft <b>Type<\/b>, nicht <b>Kind<\/b>. All dies ber&uuml;cksichtigen wir in der Schleife &uuml;ber alle Verweise, in der diese Informationen wie bereits zuvor beschrieben in der Tabelle <b>tblBibliotheken <\/b>landen.<\/p>\n<p>Anschlie&szlig;end zeigt das Formular auch die vollen Bezeichnungen an (s. Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_006.png\" alt=\"Formular mit ausf&uuml;hrlichen Bezeichnungen der Bibliotheken\" width=\"700\" height=\"341,0637\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Formular mit ausf&uuml;hrlichen Bezeichnungen der Bibliotheken<\/span><\/b><\/p>\n<p><b>Verweise-Dialog anpassen<\/b><\/p>\n<p>Vermutlich gab es bereits tausende Anfragen bei Microsoft mit der Bitte, den <b>Verweise<\/b>-Dialog so anzupassen, dass dieser die Pfade zu den Verweisen vollst&auml;ndig anzeigt. Leider hat sich in dieser Beziehung nichts getan.<\/p>\n<p>Dabei w&auml;re es wirklich sehr einfach, das Steuerelement, das derzeit den Pfad im <b>Verweise<\/b>-Dialog anzeigt, zumindest in ein Textfeld umzuwandeln, damit der Benutzer mit der Maus nach rechts scrollen und den vollst&auml;ndigen Pfad anzeigen und gegebenenfalls kopieren kann.<\/p>\n<p>Sie k&ouml;nnen eine solche &auml;nderung selbstst&auml;ndig durchf&uuml;hren &#8211; wir weisen jedoch ausdr&uuml;cklich darauf hin, dass Microsoft dies in den Lizenzbedingungen untersagt. Die experimentelle Anwendung der nachfolgenden Schritte erfolgt au&szlig;erdem auf eigene Gefahr.<\/p>\n<p>Um die notwendige &auml;nderung vorzunehmen, ben&ouml;tigen Sie zun&auml;chst ein Tool, mit dem Sie auf die Innereien des VBA-Editors zugreifen k&ouml;nnen. Dabei handelt es sich um sogenannte Resource Hacker. Der nachfolgende verwendete ist unter dem Link <b>http:\/\/www.angusj.com\/resourcehacker\/ <\/b>zu finden. Laden Sie das Tool herunter und installieren Sie es. Wenn Sie es starten, verwenden Sie die Kontextmen&uuml;-Option <b>Als Administrator ausf&uuml;hren<\/b> der Anwendung, da Sie sonst keine &auml;nderungen an der Ressourcen-Datei speichern k&ouml;nnen und diese somit wirkungslos w&auml;ren. Das Tool pr&auml;sentiert sich nach dem Start wie in Bild 7.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_007.png\" alt=\"Der Resource Hacker direkt nach dem Start\" width=\"575\" height=\"309,8752\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Der Resource Hacker direkt nach dem Start<\/span><\/b><\/p>\n<p>Nun &ouml;ffnen Sie zun&auml;chst die ben&ouml;tigte Ressourcen-Datei. Diese finden Sie im folgenden Verzeichnis:<\/p>\n<pre>C:\\Program Files (x86)\\Common Files\\microsoft shared\\VBA\\VBA7\\1031\\VBE7INTL.DLL<\/pre>\n<p>W&auml;hlen Sie diese im <b>Datei &ouml;ffnen<\/b>-Dialog des <b>Resource Hacker<\/b>-Tools aus und klicken Sie auf <b>&ouml;ffnen<\/b> (s. Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_008.png\" alt=\"&ouml;ffnen der zu &auml;ndernden Datei\" width=\"575\" height=\"309,8752\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: &ouml;ffnen der zu &auml;ndernden Datei<\/span><\/b><\/p>\n<p>Nun wird es interessant: Das linke <b>TreeView<\/b>-Steuerelement liefert einige Eintr&auml;ge, zum Beispiel einen namens <b>Dialog<\/b>. Wenn Sie diesen Eintrag &ouml;ffnen, finden Sie eine ganze Reihe weiterer Eintr&auml;ge vor, die von <b>4019 <\/b>aus durchgehend nummeriert sind. &ouml;ffnen Sie einen dieser Eintr&auml;ge, erscheint jeweils ein weiterer Eintrag mit der Bezeichnung <b>1031<\/b>. Diese Zahl repr&auml;sentiert die verwendete Sprache, hier f&uuml;r die deutsche Version. Klicken Sie auf <b>1031<\/b>, liefert das Steuerelement rechts die zur Definition des Dialogs notwendigen Codezeilen. Au&szlig;erdem erscheint ein weiteres Fenster, das den nackten Entwurf des Dialogs ohne Werte anzeigt.<\/p>\n<p>Klicken Sie hier auf ein Steuerelement, markiert der <b>Resource Hacker <\/b>sogar die f&uuml;r die Definition des Codes verantwortliche Codezeile (s. Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_009.png\" alt=\"Der Resource Hacker mit dem Code f&uuml;r das Steuerelement des Verweise-Dialogs, der den Pfad des aktuell markierten Verweises anzeigt\" width=\"675\" height=\"369,1407\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Der Resource Hacker mit dem Code f&uuml;r das Steuerelement des Verweise-Dialogs, der den Pfad des aktuell markierten Verweises anzeigt<\/span><\/b><\/p>\n<p>Um die gew&uuml;nschte &auml;nderung durchzuf&uuml;hren, brauchen Sie keine genauen Kenntnisse der hier verwendeten Sprache zur Beschreibung der Steuerelemente. Es reicht aus, dass Sie die Zeile finden, die das zu &auml;ndernde Steuerelement betrifft. Jede der Zeilen enth&auml;lt als dritten Parameter anscheinend den Steuerelementtyp, beispielsweise <b>LISTBOX<\/b>, <b>BUTTON<\/b>, <b>EDIT <\/b>oder <b>STATIC<\/b>. &auml;ndern Sie f&uuml;r die betroffene Zeile einmal <b>STATIC <\/b>in <b>EDIT<\/b>.<\/p>\n<p>F&uuml;hren Sie die &auml;nderungen mit einem Mausklick auf die Schaltfl&auml;che <b>Compile Script <\/b>durch und betrachten Sie, dass das betroffene Steuerelement nun einen wei&szlig;en statt eines grauen Hintergrunds erh&auml;lt. Um die &auml;nderungen in der Datei zu speichern, w&auml;hlen Sie den Men&uuml;eintrag <b>File|Save <\/b>aus. Sie brauchen die Originaldatei nicht zu sichern: Der <b>Resource Hacker <\/b>sichert diese automatisch unter dem Namen <b>VBE7INTL_original.DLL<\/b>. Weitere Experimente haben au&szlig;erdem ergeben, dass Sie die Datei <b>VBE7INTL.DLL <\/b>komplett l&ouml;schen k&ouml;nnen &#8211; beim n&auml;chsten Aufruf des VBA-Editors bemerkt Office den Fehler und stellt die Datei wieder her.<\/p>\n<p>Wenn Sie nun den VBA-Editor und am besten auch Access schlie&szlig;en (das gilt f&uuml;r alle Instanzen) und beides erneut &ouml;ffnen, k&ouml;nnen Sie den umgestalteten <b>Verweise<\/b>-Dialog ausprobieren. Und in der Tat erm&ouml;glicht dieser nun, in den Pfad zu klicken, den kompletten Pfad zu markieren und zu kopieren oder einfach bis zum Ende des Pfades zu scrollen (s. Bild 10). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_010.png\" alt=\"Der angepasste Verweise-Dialog\" width=\"475\" height=\"367,1841\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Der angepasste Verweise-Dialog<\/span><\/b><\/p>\n<p>Beachten Sie, dass diese &auml;nderung nach einer Reparaturinstallation oder &auml;hnlichen Aktionen wieder r&uuml;ckg&auml;ngig gemacht wird. Deshalb sollten Sie nach einer &auml;nderung noch eine Kopie der ge&auml;nderten Datei vorhalten, um diese durch &uuml;berspielen schnell wieder herstellen zu k&ouml;nnen.<\/p>\n<p><b>Bibliotheken durchsuchen<\/b><\/p>\n<p>Jetzt, wo Sie ausreichend M&ouml;glichkeiten kennen, den tats&auml;chlichen Speicherort der verschiedenen Bibliotheken zu ermitteln, k&ouml;nnen wir uns diese Bibliotheken selbst einmal ansehen. Normalerweise w&uuml;rden Sie diese, sofern noch nicht geschehen, per Verweis referenzieren und dann im Objektkatalog betrachten (s. Bild 11).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_011.png\" alt=\"Der Objektkatalog, gefiltert nach einer bestimmten Bibliothek \" width=\"575\" height=\"452,5554\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Der Objektkatalog, gefiltert nach einer bestimmten Bibliothek <\/span><\/b><\/p>\n<p>Sie k&ouml;nnen sich hier die Klassen, Methoden, Eigenschaften und Ereignisse der verschiedenen Elemente ansehen und sogar Enumerationen betrachten. Aber besonders ergonomisch ist das nicht: Wenn Sie etwa alle Elemente einer Enumeration in Textform kopieren m&ouml;chten, um diese etwa als Konstanten zu einem VBA-Modul hinzuzuf&uuml;gen, ist das nicht m&ouml;glich. Sie m&uuml;ssen jedes Element einzelnen kopieren und dann in dieser Form im Modul anlegen:<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>Const olMailItem = 0<\/pre>\n<p>Dies k&ouml;nnte zum Beispiel gefragt sein, wenn Sie von Early Binding auf Late Binding umstellen, aber zuvor bereits regen Gebrauch der Konstanten gemacht haben. Statt diese alle im Code durch die Zahlenwerte zu ersetzen, was den Code sehr schlecht lesbar macht, k&ouml;nnten Sie einfach alle Konstanten selbst deklarieren. Nun ist dies allerdings eine Arbeit f&uuml;r Leute, die Vater und Mutter erschlagen haben, aber keinesfalls ein geeigneter Zeitvertreib f&uuml;r einen Access-Entwickler.<\/p>\n<p><b>Type Libraries durchsuchen<\/b><\/p>\n<p>Zu diesem gibt es geeignete Tools &#8211; zum Beispiel die <b>Oberon TLB Tools<\/b>, die Sie unter folgendem Link als Testversion finden:<\/p>\n<pre>http:\/\/www.oberonplace.com\/products\/tlbtools\/<\/pre>\n<p>Die Testversion k&ouml;nnen Sie drei Mal einsetzen, f&uuml;r aktuell $ 25,- schalten Sie die Nutzung dauerhaft frei.<\/p>\n<p>Nach der Installation starten Sie die Anwendung etwa &uuml;ber das Startmen&uuml; und w&auml;hlen im ersten Dialog den Befehl <b>Create HTML File&#8230; <\/b>aus. Geben Sie dann zun&auml;chst den Pfad zu der zu untersuchenden Datei ein. Im ersten Beispiel wollen wir uns die Datei <b>C:\\Program Files (x86)\\Common Files\\microsoft shared\\VBA\\VBA7\\VBE7.DLL<\/b> ansehen, deren Pfad wir ja nun leicht ermitteln k&ouml;nnen. Au&szlig;er dem Pfad zur Quelldatei legen Sie noch eine HTML-Datei fest, in der das Tool das Ergebnis speichern soll. Schlie&szlig;lich legen Sie die Optionen f&uuml;r die Erstellung der Dokumentationsdatei fest, wobei folgende Parameter zur Verf&uuml;gung stehen (s. Bild 12):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_012.png\" alt=\"Ausw&auml;hlen der Quelldatei und der Zieldatei und Einstellen der Optionion\" width=\"575\" height=\"400,2762\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Ausw&auml;hlen der Quelldatei und der Zieldatei und Einstellen der Optionion<\/span><\/b><\/p>\n<ul>\n<li><b>Show Hidden Members<\/b>: Versteckte Elemente anzeigen<\/li>\n<li><b>Show Underscored Members<\/b>: Elemente mit f&uuml;hrendem Unterstrich anzeigen<\/li>\n<li><b>Show Restricted Members<\/b>: Elemente anzeigen, die als <b>Restricted <\/b>gekennzeichnet sind<\/li>\n<li><b>Add Comments<\/b>: Kommentare anzeigen<\/li>\n<li><b>Use Color Coding for Hidden Members<\/b>: hebt als verborgen markierte Elemente farbig hervor <\/li>\n<li><b>Use Color Coding for Restricted Members<\/b>: hebt als <b>Restricted <\/b>markierte Elemente farbig hervor<\/li>\n<li><b>Launch Browser on Completion<\/b>: Fertige Datei im Browser anzeigen<\/li>\n<\/ul>\n<p>Nach der Auswahl der gew&uuml;nschten Optionen erscheint der Webbrowser mit einer Datei wie in Bild 13 &#8211; hier mit der Anzeige der <b>FileSystem<\/b>-Funktionen der VBA-Bibliothek. W&auml;hrend die VBA-Bibliothek noch recht &uuml;berschaubar ist, nimmt etwa die Access-Bibliothek (<b>C:\\PROGRAM FILES (X86)\\MICROSOFT OFFICE\\OFFICE14\\MSACC.OLB<\/b>) schon gr&ouml;&szlig;ere Ausma&szlig;e an &#8211; sehen Sie sich diese einfach einmal selbst an.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_013.png\" alt=\"Export der Oberon TLB Tools f&uuml;r die VBA-Bibliothek\" width=\"675\" height=\"515,909\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Export der Oberon TLB Tools f&uuml;r die VBA-Bibliothek<\/span><\/b><\/p>\n<p>Was macht man nun mit diesen Informationen &uuml;ber die Type Libraries Sie k&ouml;nnen sich damit beispielsweise einfach einmal einen &uuml;berblick &uuml;ber alle verf&uuml;gbaren Elemente verschaffen. Wer t&auml;glich immer mit den gleichen Elementen der Benutzeroberfl&auml;che von Access arbeitet, hat m&ouml;glicherweise schon eine Art Tunnelblick.<\/p>\n<p>Ein Blick in die Type Librarys ist auch dann sinnvoll, wenn es eine neue Version von Access gibt und Sie sich dar&uuml;ber informieren wollen, welche Neuerungen diese Version mit sich bringt. Wer hat schon Lust, die komplette Benutzeroberfl&auml;che und s&auml;mtliche Men&uuml;s sowie den Objektkatalog nach neuen Elementen zu durchsuchen Viel einfacher macht es ein Blick in die Type Library der alten und der neuen Version.<\/p>\n<p><b>Type Libraries vergleichen<\/b><\/p>\n<p>Und damit kommt noch ein weiteres sehr interessantes Feature der <b>Oberon TLB Tools <\/b>hinzu: Sie k&ouml;nnen damit n&auml;mlich auch die Elemente zweier Versionen einer Bibliothek miteinander vergleichen.  Dazu ben&ouml;tigen Sie nur die beiden Versionen der entsprechenden Datei. Wir wollen uns an dieser Stelle einmal ansehen, welche neuen Elemente die Access-Bibliothek von Access 2013 im Vergleich zu Access 2010 mitbringt.<\/p>\n<p>Dazu klicken Sie im Hauptmen&uuml; der <b>Oberen TLB Tools <\/b>auf die Schaltfl&auml;che <b>Compare Type Libraries&#8230; <\/b>und w&auml;hlen im nun erscheinenden Dialog die zu vergleichenden Dateien aus. Geben Sie auch hier eine HTML-Datei an, die das Ergebnis anzeigen soll (s. Bild 14).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_014.png\" alt=\"Vergleichen zweier Libraries\" width=\"575\" height=\"315,0383\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Vergleichen zweier Libraries<\/span><\/b><\/p>\n<p>Nun klicken Sie auf die Schaltfl&auml;che <b>OK<\/b> und betrachten die erscheinende HTML-Datei. Diese sieht wie in Bild 15 aus. Wie dort zu erkennen ist, haben genau zwei Objekte eine neue Eigenschaft erhalten &#8211; und dabei handelt es sich auch noch um die gleiche Eigenschaft, n&auml;mlich <b>IsSQLBackend<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2013_06\/pic_913_015.png\" alt=\"Die Unterschiede zwischen der alten und der neuen Access-Bibliothek halten sich im Rahmen.\" width=\"575\" height=\"488,3667\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Die Unterschiede zwischen der alten und der neuen Access-Bibliothek halten sich im Rahmen.<\/span><\/b><\/p>\n<p>Beim Vergleich der beiden VBA-Bibliotheken zeigt sich wenig &uuml;berraschend, dass dort gar keine &auml;nderungen stattgefunden haben, das gleiche Bild bietet sich bei der DAO-Bibliothek. In beiden F&auml;llen hat sich aber auch die Versionsnummer nicht ge&auml;ndert.<\/p>\n<p>Etwas Hoffnung besteht bei der neueren Variante der DAO-Bibliothek, der <b>Microsoft Office x.0 Database Engine Object Library<\/b>. Hier gibt es zwischen Access 2010 und Access 2013 zumindest schon einmal verschiedene Versionsnummern. Was aber liefert der Versionsvergleich Nun &#8211; eigentlich nichts. Allein eine neue Konstante f&uuml;r die neue Version ist hinzugekommen.<\/p>\n<p>F&uuml;r Entwickler, die sich mit Desktop-Datenbanken besch&auml;ftigen und nicht auf die Erstellung von Webdatenbanken abzielen, ist Access 2013 also offensichtlich eine Version, die man auslassen kann &#8211; zumindest den Neuerungen nach zu urteilen. Tendenziell ist es n&auml;mlich so, dass sich auch &auml;nderungen der Benutzeroberfl&auml;che normalerweise zumindest in den VBA-Konstanten f&uuml;r die RunCommand-Methode niederschlagen &#8211; aber selbst dies ist nicht zu notieren.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die hier vorgestellten Techniken und Tools rund um Verweise und Bibliotheken helfen Ihnen dabei, auf die in den Bibliotheken enthaltenen Informationen zuzugreifen. Sie k&ouml;nnen damit Daten einer einzelnen Bibliothek betrachten oder verschiedene Versionen vergleichen. Schlie&szlig;lich haben Sie hier noch eine M&ouml;glichkeit kennengelernt, die Dialoge im VBA-Editor anzupassen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Bibliotheken.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{3B613AFB-805B-411F-A254-93B556EAFA8F}\/aiu_913.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie Access-Anwendungen programmieren, nutzen Sie verschiedene Bibliotheken wie etwa die VBA-Bibliothek, die Access-Bibliothek, die DAO-Bibliothek et cetera. In diesem Beitrag schauen wir uns an, wie Sie an wichtige Informationen &uuml;ber diese Bibliotheken gelangen und was dies beispielsweise im Hinblick auf das Ermitteln der neuen Features einer neuen Access-Version bedeutet.<\/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":[662013,66062013,44000025],"tags":[],"class_list":["post-55000913","post","type-post","status-publish","format-standard","hentry","category-662013","category-66062013","category-VBA_und_Programmiertechniken"],"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>Bibliotheken und Verweise untersuchen - 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\/Bibliotheken_und_Verweise_untersuchen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bibliotheken und Verweise untersuchen\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie Access-Anwendungen programmieren, nutzen Sie verschiedene Bibliotheken wie etwa die VBA-Bibliothek, die Access-Bibliothek, die DAO-Bibliothek et cetera. In diesem Beitrag schauen wir uns an, wie Sie an wichtige Informationen &uuml;ber diese Bibliotheken gelangen und was dies beispielsweise im Hinblick auf das Ermitteln der neuen Features einer neuen Access-Version bedeutet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:31:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349\" \/>\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=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Bibliotheken und Verweise untersuchen\",\"datePublished\":\"2020-05-22T21:31:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/\"},\"wordCount\":3015,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/d829790d7ac24e07a84ca2b7583f0349\",\"articleSection\":[\"2013\",\"6\\\/2013\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/\",\"name\":\"Bibliotheken und Verweise untersuchen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/d829790d7ac24e07a84ca2b7583f0349\",\"datePublished\":\"2020-05-22T21:31:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/d829790d7ac24e07a84ca2b7583f0349\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/d829790d7ac24e07a84ca2b7583f0349\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bibliotheken_und_Verweise_untersuchen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bibliotheken und Verweise untersuchen\"}]},{\"@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":"Bibliotheken und Verweise untersuchen - 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\/Bibliotheken_und_Verweise_untersuchen\/","og_locale":"de_DE","og_type":"article","og_title":"Bibliotheken und Verweise untersuchen","og_description":"Wenn Sie Access-Anwendungen programmieren, nutzen Sie verschiedene Bibliotheken wie etwa die VBA-Bibliothek, die Access-Bibliothek, die DAO-Bibliothek et cetera. In diesem Beitrag schauen wir uns an, wie Sie an wichtige Informationen &uuml;ber diese Bibliotheken gelangen und was dies beispielsweise im Hinblick auf das Ermitteln der neuen Features einer neuen Access-Version bedeutet.","og_url":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:31:52+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Bibliotheken und Verweise untersuchen","datePublished":"2020-05-22T21:31:52+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/"},"wordCount":3015,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349","articleSection":["2013","6\/2013","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/","url":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/","name":"Bibliotheken und Verweise untersuchen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349","datePublished":"2020-05-22T21:31:52+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/d829790d7ac24e07a84ca2b7583f0349"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Bibliotheken_und_Verweise_untersuchen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Bibliotheken und Verweise untersuchen"}]},{"@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\/55000913","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=55000913"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000913\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}