{"id":55000961,"date":"2014-12-01T00:00:00","date_gmt":"2021-03-22T16:34:43","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=961"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBA_unter_Access_mit_64_Bit","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/","title":{"rendered":"VBA unter Access mit 64 Bit"},"content":{"rendered":"<p><b>Die 64-Bit-Version von Access sollten Sie schon deshalb nicht nutzen, weil diese ActiveX-Steuerelemente wie das TreeView-, das ListView- oder das ImageList-Steuerelement nicht unterst\u00fctzt. Aber es gibt noch weitere Gr\u00fcnde: Zum Beispiel k\u00f6nnte es Probleme bei der Verwendung von API-Funktionen geben. Manchmal bleibt einem Entwickler allerdings keine anderen M\u00f6glichkeit, weil etwa am Arbeitsplatz nur die 64-Bit-Version vorliegt oder aber der Kunde mit dieser Version arbeiten muss. Der vorliegende Beitrag liefert Informationen, wie Sie nicht kompatible VBA-Anweisungen f\u00fcr die Zielversion anpassen m\u00fcssen und wie Sie programmieren m\u00fcssen, um die 32-Bit- und die 64-Bit-Version gleicherma\u00dfen zu bedienen. <\/b><\/p>\n<h2 data-tadv-p=\"keep\">Unterschiede zwischen Access 32-Bit und Access 64-Bit<\/h2>\n<p>Warum entsteht das in der Einleitung beschriebene Dilemma \u00fcberhaupt und was ist mit 32-Bit-Version und 64-Bit-Version \u00fcberhaupt gemeint<\/p>\n<p>Hierbei beziehen wir uns zun\u00e4chst auf das Betriebssystem. Wenn Sie ein 32-Bit-Betriebssystem nutzen, kann dieses maximal 2 hoch 32 Bytes Arbeitsspeicher adressieren, also ca. 4.096 Megabyte. Bei einem 64-Bit-Betriebssystem kann ein Arbeitsspeicher von 2 hoch 64 Byte adressiert werden &#8211; dies wird noch eine Weile ausreichen.<\/p>\n<p>Wer also mehr als vier Gigabyte Arbeitsspeicher in seinem Rechner verbaut hat und sich wundert, dass davon nur vier angezeigt werden, f\u00e4hrt also vermutlich noch ein 32-Bit-Betriebssystem.<\/p>\n<p>M\u00f6chten Sie herausfinden, wie viel Arbeitsspeicher Sie nutzen und ob Sie ein 32-Bit- oder ein 64-Bit-Betriebssystem nutzen, k\u00f6nnen Sie dies \u00fcber die Systemsteuerung ermitteln. Unter Windows 7 etwa klicken Sie dazu auf <b>Start|Systemsteuerung <\/b>und dann auf System. Es erscheint der Dialog aus Bild 1, dem Sie die notwendigen Informationen entnehmen k\u00f6nnen. In diesem Fall handelt es sich um ein 64-Bit-System mit acht Gigabyte Arbeitsspeicher.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_002.png\" alt=\"Hinweise auf Arbeitsspeicher und Betriebssystem in den Systemeinstellungen von Windows\" width=\"500\" height=\"393,8115\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 1: Hinweise auf Arbeitsspeicher und Betriebssystem in den Systemeinstellungen von Windows<\/span><\/b><\/p>\n<h2 data-tadv-p=\"keep\"><b>Office mit 32-Bit und 64-Bit<\/b><\/h2>\n<p>Damit kommen wir zum Thema Office und somit auch zu Access. Access 2010 etwa wird standardm\u00e4\u00dfig in der 32-Bit-Variante installiert.<\/p>\n<p>Wer Access 64-Bit w\u00fcnscht, muss dies explizit bei der Installation angeben. Warum das Weil es sehr viele externe Tools und Steuerelemente f\u00fcr Access in der 32-Bit-Version gibt. W\u00fcrden Sie Access in der 64-Bit-Version installieren und versuchen, ein mit der 32-Bit-Version etwa von VB6 entwickeltes Add-In zu starten, f\u00fchrt dies zu einem Fehler.<\/p>\n<p>Das Gleiche gilt, wenn Sie etwa ein 32-Bit-ActiveX-Steuerelement wie das <b>TreeView<\/b>-Steuerelement verwenden m\u00f6chten &#8211; mehr dazu weiter unten.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Einfache L\u00f6sung<\/b><\/h2>\n<p>Wenn Sie eine neue Office-Version installieren, k\u00f6nnen Sie diese und anderen Probleme auf einfache Art und Weise umschiffen: Installieren Sie einfach die 32-Bit-Variante. Windows in der 64-Bit-Variante bietet eine Kompatibilit\u00e4tsumgebung namens <b>WOW64<\/b>, mit der Sie 32-Bit-Anwendungen wie in diesem Fall Office und Access ganz normal ausf\u00fchren k\u00f6nnen.<\/p>\n<p>In diesem Fall wird Office nicht in dem daf\u00fcr vorgesehenen Verzeichnis <b>C:Program FilesMicrosoft OfficeOffice15<\/b> installiert, sondern etwa unter <b>C:Program Files (x86)Microsoft OfficeOffice15<\/b>.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Probleme mit ActiveX-Steuerelementen<\/b><\/h2>\n<p>Das vermutlich kritisch-ste Problem, das bei der Nutzung von Access in der 64-Bit-Version auftaucht, sind ActiveX-Steuerelemente, die nur in der 32-Bit-Version verf\u00fcgbar sind.<\/p>\n<p>Wir haben testweise eine frische Datenbank unter Access 32-Bit mit einem TreeView-Steuerelement versehen. Wenn Sie diese Datenbank unter Access 64-Bit \u00f6ffnen, l\u00f6st dies zun\u00e4chst die Meldung aus Bild 2 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_010.png\" alt=\"Der Verweis auf die Datei MSCOMCTL.ocx kann unter Access in der 64-Bit-Version nicht gefunden werden.\" width=\"700\" height=\"163,038\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 2: Der Verweis auf die Datei MSCOMCTL.ocx kann unter Access in der 64-Bit-Version nicht gefunden werden.<\/span><\/b><\/p>\n<p>Wenn Sie diese Meldung ignorieren und dann das Formular mit dem <b>TreeView<\/b>-Steuerelement \u00f6ffnen, erhalten Sie die Meldung aus Bild 3.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_011.png\" alt=\"Der Container mit dem TreeView-Steuerelement ist leer.\" width=\"450\" height=\"314,5806\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 3: Der Container mit dem TreeView-Steuerelement ist leer.<\/span><\/b><\/p>\n<p>Was tun Nun: Es gibt keine 64-Bit-Version dieses Steuerelements, also k\u00f6nnen Sie nur zur 32-Bit-Version von Access wechseln oder eine Alternative f\u00fcr das <b>TreeView<\/b>-Steuerelement suchen.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Probleme mit mde\/accde unter Access 64-Bit<\/b><\/h2>\n<p>Wenn Sie eine <b>.mde<\/b>&#8211; oder <b>.accde<\/b>-Datei unter Access in der 32-Bit-Version erzeugt haben, k\u00f6nnen Sie diese nur mit der entsprechenden Access-Version \u00f6ffnen. Wenn Sie etwa eine 32-Bit-accde-Datei unter Access in der 64-Bit-Version \u00f6ffnen, erhalten Sie die Fehlermeldung aus Bild 4. In diesem Fall besteht Hoffnung: Wenn Sie Zugriff auf die unkompilierte Version der Datenbankdatei haben, k\u00f6nnen Sie diese unter der 64-Bit-Version von Access kompilieren und die <b>.mde<\/b>\/<b>.accde<\/b>-Datei dann unter Access in der 64-Bit-Version nutzen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_003.png\" alt=\"Fehler beim \u00f6ffnen einer .mde- oder .accde-Datei, die mit Access in der 32-Bit-Version erstellt wurde\" width=\"575\" height=\"115,2021\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 4: Fehler beim \u00f6ffnen einer .mde- oder .accde-Datei, die mit Access in der 32-Bit-Version erstellt wurde<\/span><\/b><\/p>\n<h2 data-tadv-p=\"keep\"><b>Probleme mit API-Deklarationen<\/b><\/h2>\n<p>Ein weiteres Problem tritt auf, wenn Sie API-Funktionen, die mit der 32-Bit-Version von Access funktionieren, unter der 64-Bit-Version einsetzen m\u00f6chten. Wir schauen uns dazu die GDI-\/OGL-Bibliothek von Sascha Trowitzsch an, die eine Menge API-Funktionen verwendet, und wollen diese f\u00fcr die 64-Bit-Version lauff\u00e4hig machen.<\/p>\n<p>Wenn Sie das Modul <b>mdlOGL0710 <\/b>unter Access 2013 in der 64-Bit-Version \u00f6ffnen, erhalten Sie einige rot markierte Zeilen wie in Bild 5. Der erste Schritt, um die API-Deklarationen f\u00fcr die 64-Bit-Version nutzbar zu machen, liegt im Hinzuf\u00fcgen eines einfachen Schl\u00fcsselworts, und zwar <b>PtrSafe<\/b>. Dieses Schl\u00fcsselwort f\u00fcgen Sie unmittelbar hinter der <b>Declare<\/b>-Anweisung der API-Funktion ein, sodass etwa die erste in der Abbildung sichtbare Funktion wie in Bild 6 aussieht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_015.png\" alt=\"Fehlerhafte API-Deklarationen\" width=\"650\" height=\"341,4071\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 5: Fehlerhafte API-Deklarationen<\/span><\/b><\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_016.png\" alt=\"Hinzuf\u00fcgen des Schl\u00fcsselworts PtrSafe\" width=\"650\" height=\"178,7325\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 6: Hinzuf\u00fcgen des Schl\u00fcsselworts PtrSafe<\/span><\/b><\/p>\n<\/p>\n<p>Auf diese Weise statten Sie nun alle API-Funktionen mit diesem Schl\u00fcsselwort aus. Die Suchen\/Ersetzen-Funktion des VBA-Editors ist dabei eine willkommene Erleichterung: Ersetzen Sie zun\u00e4chst <b>Declare Function <\/b>durch <b>Declare PtrSafe Function <\/b>und dann <b>Declare Sub <\/b>durch <b>Declare PtrSafe Sub<\/b> &#8211; klicken Sie dabei jeweils auf <b>Alle ersetzen<\/b> (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_017.png\" alt=\"PtrSafe per Suchen\/Ersetzen hinzuf\u00fcgen\" width=\"400\" height=\"172,807\" \/><\/p>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 7: PtrSafe per Suchen\/Ersetzen hinzuf\u00fcgen<\/span><\/b><\/p>\n<p>Sollten sich noch weitere nicht kompatible API-Deklarationen finden, k\u00f6nnen Sie diese durch Bet\u00e4tigen des Men\u00fcbefehls <b>Debuggen|Kompilieren von <\/b>auffinden. Es erscheint dann die Meldung aus Bild 8.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_018.png\" alt=\"Meldung, wenn beim Debuggen noch inkompatible API-Deklarationen gefunden werden\" width=\"400\" height=\"172,5806\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 8: Meldung, wenn beim Debuggen noch inkompatible API-Deklarationen gefunden werden<\/span><\/b><\/p>\n<p>Damit w\u00e4ren schon einmal die Probleme mit der Variablendeklaration behoben.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Probleme mit Variablentypen<\/b><\/h2>\n<p>Nach diesem Problem folgt auch gleich das n\u00e4chste &#8211; wenn auch nicht offensichtlich. Dazu bet\u00e4tigen wir nochmals den <b>Debuggen|Kompilieren von <\/b>.<\/p>\n<p>In unserem Beispiel meldet Access nun <b>Fehler beim Kompilieren: Typen unvertr\u00e4glich <\/b>und markiert einen Parameter der API-Funktion <b>GdipCreateBitmapFromFile<\/b> (siehe Bild 9). Hier wird offensichtlich eine Funktion namens <b>StrPtr <\/b>verwendet, um der Funktion die Adresse der Variablen <b>sFileName <\/b>zu \u00fcbermitteln.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_019.png\" alt=\"Datentyp-Fehler\" width=\"400\" height=\"269,4805\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 9: Datentyp-Fehler<\/span><\/b><\/p>\n<p>Was geht hier schief Schauen wir uns die Funktion <b>StrPtr <\/b>an, indem wir das Kontextmen\u00fc zu diesem Befehl \u00f6ffnen und den Eintrag <b>Definition <\/b>ausw\u00e4hlen. Dies f\u00fchrt zun\u00e4chst zur Fehlermeldung aus Bild 10.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_020.png\" alt=\"Problem beim Anzeigen der Funktion StrPtr\" width=\"400\" height=\"256,6978\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 10: Problem beim Anzeigen der Funktion StrPtr<\/span><\/b><\/p>\n<p>Das ist aber kein Problem: Wir aktivieren im Objektkatalog mit einem Klick auf den Eintrag <b>Verborgene Eintr\u00e4ge anzeigen <\/b>des Kontextmen\u00fcs die Anzeige der verborgenen Elemente.<\/p>\n<p>Anschlie\u00dfend versuchen wir erneut, die Definition der Funktion <b>StrPtr<\/b> im Objektkatalog anzuzeigen. Diesmal gelingt es, wie Bild 11 zeigt. Hier erfahren wir dann, dass <b>StrPtr <\/b>einen Wert des Datentyps <b>LongPtr <\/b>zur\u00fcckliefert. Damit schauen wir uns nun die Definition der API-Funktion an:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_021.png\" alt=\"Anzeigen der Funktion StrPtr im Objektkatalog\" width=\"400\" height=\"237,3627\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 11: Anzeigen der Funktion StrPtr im Objektkatalog<\/span><\/b><\/p>\n<pre><span style=\"color: blue;\">Private <\/span>Declare PtrSafe Function GdipCreateBitmapFromFile_O Lib \"ogl\" Alias \"GdipCreateBitmapFromFile\" _\n    (ByVal FileName<span style=\"color: blue;\"> As Long<\/span>, bitmap<span style=\"color: blue;\"> As Long<\/span>)<span style=\"color: blue;\"> As Long<\/span><\/pre>\n<p>Hier sehen wir nun, dass der erste Parameter nicht mit dem Datentyp <b>LongPtr<\/b>, sondern mit dem Datentyp <b>Long <\/b>definiert ist. Schauen wir uns den gleichen Code auf einem Rechner mit Office in der 32-Bit-Version an, so f\u00fchrt das Kompilieren dieser Definition der API-Funktion nicht zu einem Fehler &#8211; der <b>LongPtr<\/b>-Wert kann also wohl problemlos f\u00fcr den <b>Long<\/b>-Parameter angegeben werden.<\/p>\n<h2 data-tadv-p=\"keep\">Der LongPrt-Datentyp f\u00fcr Access 64-bit<\/h2>\n<p>Aber worum handelt es sich bei diesem <b>LongPtr<\/b>-Datentyp eigentlich Er wurde mit VBA 7 eingef\u00fchrt und nimmt wie der <b>Long<\/b>-Datentyp Ganzzahlen auf.<\/p>\n<p>Der Datentyp <b>Long <\/b>unterst\u00fctzt einen Wertebereich von -2.147.483.648 bis 2.147.483.647. Welchen Wertebereich der Datentyp <b>LongPtr <\/b>unterst\u00fctzt, h\u00e4ngt von der Office-Version ab:<\/p>\n<ul>\n<li>Unter Office 2010 und neuer in der 32-Bit-Version werden ebenfalls nur die Werte von -2.147.483.648 bis 2.147.483.647 unterst\u00fctzt.<\/li>\n<li>Unter Office 2010 und neuer in der 64-Bit-Version werden Zahlen eines wesentlicher h\u00f6heren, ann\u00e4hernd 264 umfassenden Wertebereichs unterst\u00fctzt.<\/li>\n<\/ul>\n<p>Sprich: Bei Verwendung der 32-Bit-Version verwenden <b>Long <\/b>und <b>LongPtr <\/b>den gleichen Wertebereich. Deshalb gibt es auch in der 32-Bit-Version keinen Fehler, wenn Sie einer <b>Long<\/b>-Variablen einen Wert zuweisen, der durch die Funktion <b>StrPtr <\/b>ermittelt wurde.<\/p>\n<p>In der 64-Bit-Version liegt dieser Fehler jedoch vor, weshalb wir schlicht und einfach den Datentyp der Parameter in den betreffenden API-Funktionen von <b>Long <\/b>in <b>LongPtr <\/b>\u00e4ndern. Da dieser Datentyp auch unter VBA 7 in der 32-Bit-Version unterst\u00fctzt wird, erhalten wir die volle Kompatibilit\u00e4t &#8211; vorausgesetzt, VBA 7 wird verwendet.<\/p>\n<p>Damit gehen wir nun weiter und schauen, wo es noch Probleme gibt. Diese halten sich im Rahmen: Sie m\u00fcssen im Beispielmodul lediglich noch hier und da den Datentyp <b>Long <\/b>durch <b>LongPtr<\/b> ersetzen, und zwar in API-Funktionen als auch in Type-Elementen.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Kompatibilit\u00e4t mit \u00e4lteren VBA-Versionen<\/b><\/h2>\n<p>Wenn Sie eine Anwendung also durch Ersetzen des Datentyps <b>Long <\/b>durch <b>LongPtr <\/b>64-Bit-f\u00e4hig gemacht haben, k\u00f6nnen Sie diese unter Windows 7 (nat\u00fcrlich in der 64-Bit-Variante) unter Office in der 32-Bit- und in der 64-Bit-Version nutzen.<\/p>\n<p>Was nun noch fehlt, ist die Pr\u00fcfung der Abw\u00e4rtskompatibilit\u00e4t. Wie sieht es aus, wenn wir den Code unter einer Office-Version nutzen wollen, die noch VBA 6 nutzt &#8211; was ja nicht 64-Bit-f\u00e4hig ist Dies pr\u00fcfen wir, indem wir den betroffenen Code auf einem Rechner mit dem entsprechenden Office-Paket kompilieren und ausf\u00fchren. Hier tritt dann gleich der Fehler aus Bild 12 auf &#8211; VBA erkennt den Befehl <b>PtrSafe <\/b>nicht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_022.png\" alt=\"Fehler beim Kompilieren unter Access 2003\" width=\"575\" height=\"364,4615\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 12: Fehler beim Kompilieren unter Access 2003<\/span><\/b><\/p>\n<p>Kein Wunder, denn wir verwenden ja hier auch die Version 6.0 von VBA (s. Bild 13).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_06\/pic_961_023.png\" alt=\"Ermittlung der VBA-Version\" width=\"450\" height=\"254,9608\" \/><\/p>\n<p><b><span style=\"color: darkgrey;\">Bild 13: Ermittlung der VBA-Version<\/span><\/b><\/p>\n<h2 data-tadv-p=\"keep\"><b>Kompatibilit\u00e4t per Kompilierungskonstante<\/b><\/h2>\n<p>Was also k\u00f6nnen wir tun, damit der f\u00fcr die 64-Bit-Version von Access angepasste Code nun auch f\u00fcr \u00e4ltere Versionen von VBA kompatibel ist Dazu nutzen wir eine von zwei neuen Kompilierungskonstanten. Dabei handelt es sich um Konstanten, die f\u00fcr die bedingte Kompilierung genutzt werden &#8211; eine M\u00f6glichkeit, Codezeilen nur dann zu kompilieren, wenn eine bestimmte Bedingung eintritt.<\/p>\n<p>Ein einfaches Beispiel sieht wie folgt aus &#8211; hier wird schlicht in Abh\u00e4ngigkeit der Kompilierungskonstante VBA7 ein entsprechender Ausdruck im Direktfenster ausgegeben:<\/p>\n<pre><span style=\"color: blue;\">Public Sub <\/span>TestVBA7()\n     #If vba7 Then\n         <span style=\"color: blue;\">Debug.Print<\/span> \"VBA7 wird genutzt.\"\n     #Else\n         <span style=\"color: blue;\">Debug.Print<\/span> _\n             \"VBA7 wird nicht genutzt.\"\n     #End If\n<span style=\"color: blue;\">End Sub<\/span><\/pre>\n<p>Diese Kompilierungskonstante funktioniert nur in Anweisungen der bedingten Kompilierung, also mit <b>#If&#8230;Then<\/b>, <b>#If&#8230;Then&#8230;Else<\/b>, <b>#Else <\/b>und <b>#End If<\/b>.<\/p>\n<p>Die <b>#If&#8230;Then<\/b>-Bedingung pr\u00fcft den Wert der Kompilierkonstanten <b>VBA7 <\/b>und f\u00fchrt dann entweder den <b>#If<\/b>&#8211; oder den <b>#Else<\/b>-Teil der Bedingung aus.<\/p>\n<p>In unserem Fall f\u00fcgen wir dem <b>If<\/b>-Teil der Bedingung beispielsweise die API-Deklaration mit dem <b>PtrSafe<\/b>-Schl\u00fcsselwort hinzu, dem <b>Else<\/b>-Teil die gleiche API-Deklaration ohne das <b>PtrSafe<\/b>-Schl\u00fcsselwort (s. Listing 1).<\/p>\n<pre>#If vba7 Then\n<span style=\"color: blue;\">Private <\/span>Declare PtrSafe Function OleCreatePictureIndirect Lib \"oleaut32.dll\" _\n    (lpPictDesc<span style=\"color: blue;\"> As <\/span>PICTDESC, riid<span style=\"color: blue;\"> As <\/span>GUID, _\n    ByVal fPictureOwnsHandle<span style=\"color: blue;\"> As Long<\/span>, IPic<span style=\"color: blue;\"> As Object<\/span>)<span style=\"color: blue;\"> As Long<\/span>\n#Else\n<span style=\"color: blue;\">Private <\/span>Declare Function OleCreatePictureIndirect Lib \"oleaut32.dll\" _\n    (lpPictDesc<span style=\"color: blue;\"> As <\/span>PICTDESC, riid<span style=\"color: blue;\"> As <\/span>GUID, _\n    ByVal fPictureOwnsHandle<span style=\"color: blue;\"> As Long<\/span>, IPic<span style=\"color: blue;\"> As Object<\/span>)<span style=\"color: blue;\"> As Long<\/span>\n#End If<\/pre>\n<p><b><span style=\"color: darkgrey;\">Listing 1: Verschiedene Deklarationen per bedingter Kompilierung<\/span><\/b><\/p>\n<p>Auf die gleiche Art und Weise fassen wir die kompletten API-Deklarationen einmal in den <b>If<\/b>&#8211; und einmal in den <b>Then<\/b>-Teil ein, das Gleiche gilt f\u00fcr die \u00fcbrigen unter VBA 6.0 nicht kompilierbaren Anweisungen, die Sie nachfolgend durch wiederholtes Kompilieren aufdecken.<\/p>\n<p>Bei den API-Deklarationen m\u00fcssen Sie bei der VBA 6.0-Variante nat\u00fcrlich auch noch die <b>LongPtr<\/b>-Parameter in <b>Long<\/b>-Parameter zur\u00fcckverwandeln.<\/p>\n<p>Die Beispieldatenbank <b>VBA64.mdb<\/b> enth\u00e4lt nun Code, der sowohl unter VBA 6.0 als auch unter VBA 7.0 in der 32-Bit- und der 64-Bit-Version funktioniert.<\/p>\n<h2 data-tadv-p=\"keep\"><b>Unterschiede zwischen 32-Bit und 64-Bit<\/b><\/h2>\n<p>Es gibt noch weitere m\u00f6gliche Unterschiede zwischen der 32-Bit- und der 64-Bit-Version von VBA. W\u00e4hrend die bisher in diesem Beitrag vorgestellten \u00e4nderungen, die zur Sicherstellung der Kompilierbarkeit unter der 64-Bit-Version n\u00f6tig waren, zur 32-Bit-Version abw\u00e4rtskompatibel sind, gibt es auch noch solche, die unter der 32-Bit-Version nicht kompilierbar sind.<\/p>\n<p>Allerdings halten sich diese \u00e4nderungen in Grenzen: Nach unseren Erkenntnissen handelt es sich allein um den Datentyp <b>LongLong<\/b>.<\/p>\n<p>Dessen Wertebereich sollte eigentlich von <b>-9.223.372.036.854.775.808 <\/b>bis <b>9.223.372.036.854.775.807<\/b> reichen &#8211; also von -263 bis 263-1.<\/p>\n<p>F\u00fcr den bei der Erstellung der Beispiele zu diesem Beitrag verwendeten Rechner haben wir mit folgender Prozedur experimentell aber andere Werte ermittelt:<\/p>\n<pre><span style=\"color: blue;\">Public Sub <\/span>TestLongLong()\n     <span style=\"color: blue;\">Dim <\/span>lnglng<span style=\"color: blue;\"> As Long<\/span>Long\n     lnglng = Eval(\"-2^63-1024\")\n     <span style=\"color: blue;\">Debug.Print<\/span> \"LongLong minimal: \" _\n         &amp; lnglng\n     lnglng = Eval(\"2^63-513\")\n     <span style=\"color: blue;\">Debug.Print<\/span> \"LongLong maximal: \" _\n         &amp; lnglng\n<span style=\"color: blue;\">End Sub<\/span><\/pre>\n<p>Das Ergebnis im Direktfenster sieht dann so aus:<\/p>\n<pre>LongLong minimal: -9223372036854775808\nLongLong maximal: 9223372036854774784<\/pre>\n<p>Mit einigen Tausendertrennzeichen f\u00fcr die bessere Lesbarkeit ergibt dies einen Wertebereich von <b>-9.223.372.036.854.775.808<\/b> bis <b>9.223.372.036.854.774.784<\/b>.<\/p>\n<p>Ob die aktuelle Office-Version nun im 32-Bit- oder im 64-Bit-Betrieb l\u00e4uft, ermitteln Sie mit der <b>Win64<\/b>-Kompilierkon-stanten. Hier ein kleines Beispiel:<\/p>\n<pre><span style=\"color: blue;\">Public Sub <\/span>Test64-Bit()\n     #If Win64 Then\n         <span style=\"color: blue;\">Debug.Print<\/span> \"Win64\"\n     #Else\n         <span style=\"color: blue;\">Debug.Print<\/span> \"Anderes\"\n     #End If\n<span style=\"color: blue;\">End Sub<\/span><\/pre>\n<p>Nun k\u00f6nnen Sie aber keine Variablen deklarieren, die den Typ <b>LongLong <\/b>verwenden und auch dessen Wertebereich aussch\u00f6pfen und diese dann auch f\u00fcr Office in der 32-Bit-Variante zug\u00e4nglich machen. Dies wird allerdings auch etwa von API-Funktionen ber\u00fccksichtigt &#8211; wie etwa von der fiktiven Funktion <b>MyMathFunction<\/b>. Diese deklarieren Sie f\u00fcr gr\u00f6\u00dftm\u00f6gliche Kompatibilit\u00e4t einfach wie in Listing 2.<\/p>\n<pre>#If Win64 Then\n     Declare PtrSafe Function MyMathFunc Lib \"user32\" (ByVal N<span style=\"color: blue;\"> As Long<\/span>Long)<span style=\"color: blue;\"> As Long<\/span>Long\n#Else\n     Declare PtrSafe Function MyMathFunc Lib \"user32\" (ByVal N<span style=\"color: blue;\"> As Long<\/span>)<span style=\"color: blue;\"> As Long<\/span>\n#End If<\/pre>\n<p><b><span style=\"color: darkgrey;\">Listing 2: Deklaration einer API-Funktion f\u00fcr 64-Bit- und 32-Bit-VBA<\/span><\/b><\/p>\n<p><b>Links:<\/b><\/p>\n<pre>http:\/\/msdn.microsoft.com\/de-de\/library\/office\/ee691831(v=office.14).aspx\nhttp:\/\/windows.microsoft.com\/de-de\/windows\/32-bit-and-64-bit-windows#1TC=windows-7\nhttp:\/\/www.hardwareschotte.de\/magazin\/32-bit-vs-64-bit-wo-ist-der-unterschied-a41592<\/pre>\n<h2>Weitere interessante Artikel zu diesem Thema<\/h2>\n<p><a href=\"https:\/\/www.access-im-unternehmen.de\/1136\">TreeView 64bit ist da &#8211; Anwendungen umr\u00fcsten<\/a><\/p>\n<p><a href=\"https:\/\/www.access-im-unternehmen.de\/1239\">GUIDs per VBA erstellen (64-bit-kompatibel)<\/a><\/p>\n<p><a href=\"https:\/\/www.access-im-unternehmen.de\/1247\">Zwischenablage per VBA, 64-Bit-Version<\/a><\/p>\n<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>VBA64.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/D2846656-B7E4-4B57-881C-A11EFB49EC1D\/aiu_961.zip\">Download<\/a><\/p>\n<h2>Weitere interessante Artikel zu diesem Thema<\/h2>\n<p><a href='https:\/\/www.access-im-unternehmen.de\/1136'>TreeView 64bit ist da &#8211; Anwendungen umr&uuml;sten<\/a><\/p>\n<p><a href='https:\/\/www.access-im-unternehmen.de\/1239'>GUIDs per VBA erstellen (64-bit-kompatibel)<\/a><\/p>\n<p><a href='https:\/\/www.access-im-unternehmen.de\/1247'>Zwischenablage per VBA, 64-Bit-Version<\/a><\/p>\n<p><!--LinksEnde--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die 64bit-Version von Access sollten Sie schon deshalb nicht nutzen, weil diese ActiveX-Steuerelemente wie das TreeView-, das ListView- oder das ImageList-Steuerelement nicht unterst&uuml;tzt. Aber es gibt noch weitere Gr&uuml;nde: Zum Beispiel k&ouml;nnte es Probleme bei der Verwendung von API-Funktionen geben. Manchmal bleibt einem Entwickler allerdings keine anderen M&ouml;glichkeit, weil etwa am Arbeitsplatz nur die 64bit-Version vorliegt oder aber der Kunde mit dieser Version arbeiten muss. Der vorliegende Beitrag liefert Informationen, wie Sie nicht kompatible VBA-Anweisungen f&uuml;r die Zielversion anpassen m&uuml;ssen und wie Sie programmieren m&uuml;ssen, um die 32bit- und die 64bit-Version gleicherma&szlig;en zu bedienen.<\/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":[662014,66062014,44000025],"tags":[],"class_list":["post-55000961","post","type-post","status-publish","format-standard","hentry","category-662014","category-66062014","category-VBA_und_Programmiertechniken"],"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>Access-Anwendungen f\u00fcr Access 64-bit programmieren oder anpassen<\/title>\n<meta name=\"description\" content=\"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.\" \/>\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\/VBA_unter_Access_mit_64_Bit\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VBA unter Access mit 64 Bit\" \/>\n<meta property=\"og:description\" content=\"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-22T16:34:43+00:00\" \/>\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=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"VBA unter Access mit 64 Bit\",\"datePublished\":\"2021-03-22T16:34:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/\"},\"wordCount\":2056,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"articleSection\":[\"2014\",\"6\\\/2014\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/\",\"name\":\"Access-Anwendungen f\u00fcr Access 64-bit programmieren oder anpassen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"datePublished\":\"2021-03-22T16:34:43+00:00\",\"description\":\"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBA_unter_Access_mit_64_Bit\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VBA unter Access mit 64 Bit\"}]},{\"@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":"Access-Anwendungen f\u00fcr Access 64-bit programmieren oder anpassen","description":"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.","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\/VBA_unter_Access_mit_64_Bit\/","og_locale":"de_DE","og_type":"article","og_title":"VBA unter Access mit 64 Bit","og_description":"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.","og_url":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-03-22T16:34:43+00:00","author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"VBA unter Access mit 64 Bit","datePublished":"2021-03-22T16:34:43+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/"},"wordCount":2056,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"articleSection":["2014","6\/2014","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/","url":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/","name":"Access-Anwendungen f\u00fcr Access 64-bit programmieren oder anpassen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"datePublished":"2021-03-22T16:34:43+00:00","description":"Seit Access 2019 wird Access 64-bit standardm\u00e4\u00dfig statt Access 32-bit installiert. Erfahren Sie, wie Sie Ihre Anwendung 64-bit-f\u00e4hig machen.","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/VBA_unter_Access_mit_64_Bit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"VBA unter Access mit 64 Bit"}]},{"@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\/55000961","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=55000961"}],"version-history":[{"count":11,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000961\/revisions"}],"predecessor-version":[{"id":88072450,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000961\/revisions\/88072450"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}