{"id":55000622,"date":"2008-08-01T00:00:00","date_gmt":"2021-02-11T21:22:02","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=622"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Bedingte_Kompilierung_am_Beispiel_des_PDFExports","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/","title":{"rendered":"Bedingte Kompilierung am Beispiel des PDF-Exports"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Mit Access 2007 ist wieder mal eine neue Version erschienen. Damit stellt sich f&uuml;r Softwareentwickler und auch f&uuml;r Anwender die Frage, ob man zu dieser Version wechseln sollte oder vielleicht versucht, eine Anwendung so weit anzupassen, dass diese auch mit der neuen Version zusammenarbeitet und gleichzeitig die vorhandenen Versionen unterst&uuml;tzt. Wie sich das f&uuml;r einzelne Features umsetzen l&auml;sst, zeigen wir am Beispiel PDF-Export.<\/b><\/p>\n<p>Eine Anwendung bauen, die unter Access 2003 und &auml;lter und auch unter Access 2007 l&auml;uft Was soll das bringen und vor allem: Wie soll das funktionieren Bei fr&uuml;heren Versionswechseln sah man sich in der Regel nicht solch gravierenden Neuerungen ausgesetzt wie es jetzt unter Access 2007 der Fall ist. Das gilt nat&uuml;rlich insbesondere f&uuml;r das Ribbon, das die bisher verwendeten Men&uuml;leisten ersetzt. Aber auch unter VBA und in anderen Bereichen sind einige Features hinzugekommen.<\/p>\n<p>Wir haben uns den PDF-Export vorgenommen, der unter Access 2003 und &auml;lter und unter Access 2007 auf unterschiedliche (kostenlose) Weise erfolgen kann, um zu untersuchen, wie man eine Anwendung f&uuml;r mehrere Access-Versionen und deren Eigenarten vorbereitet.<\/p>\n<p><b>Lebans vs. Microsoft<\/b><\/p>\n<p>Bis Office 2007 erschien und mit ihm ein Add-In, das den Export von Access-Berichten und auch von Office-Dokumenten ins PDF-Format erlaubte, konnte man sich entweder bei einer der kostenpflichtigen L&ouml;sungen bedienen oder etwas Handgemachtes einsetzen. F&uuml;r Access-Berichte haben viele Entwickler zu einer L&ouml;sung von Stephen Lebans gegriffen (<b>http:\/\/www.lebans.com\/reporttopdf.htm<\/b>). Diese L&ouml;sung verwendet zwei DLLs, die man einfach im Systempfad speichert und vom Programmcode aus aufruft. Details dazu erfahren Sie im Beitrag <b>Vom Bericht zum PDF-Dokument <\/b>(Shortlink 430).<\/p>\n<p>Ab Access 2007 bietet Microsoft unter folgendem Link ein Add-In an, mit dem man wahlweise &uuml;ber einen Eintrag des Office-Men&uuml;s oder &uuml;ber den Befehl <b>DoCmd.OutputTo <\/b>ein Objekt (in der Regel einen Bericht) im PDF-Format speichert: <b>http:\/\/www.microsoft.com\/downloads\/details.aspxdisplaylang=de&amp;FamilyID=f1fc413c-6d89-4f15-991b-63b07ba5f2e5<\/b><\/p>\n<p><b>Alles in einem<\/b><\/p>\n<p>F&uuml;r beide L&ouml;sungen ist eine gewisse Menge Code notwendig. Wenn Sie die Anwendung unter Access 2003 kompilieren, m&ouml;chten Sie normalerweise nur den daf&uuml;r n&ouml;tigen Code dort unterbringen, unter Access 2007 sieht das genauso aus.<\/p>\n<p>VBA bietet f&uuml;r solche F&auml;lle die bedingte Kompilierung an. Damit k&ouml;nnen Sie f&uuml;r ein Modul eine Konstante festlegen und in Abh&auml;ngigkeit vom Wert dieser Konstanten in einer speziell markierten <b>If&#8230;Then<\/b>-Anweisung den jeweiligen Code unterbringen. Das sieht etwa so aus:<\/p>\n<pre>#Const AccessVersion = 2000\r\nPublic Sub BeispielBedingteKompilierung()\r\n#If AccessVersion = 2000 Then\r\n    MsgBox &quot;2000&quot;\r\n#ElseIf AccessVersion = 2007 Then\r\n    MsgBox &quot;2007&quot;\r\n#End If\r\nEnd Sub<\/pre>\n<p>Im aktuellen Fall, also mit dem Konstantenwert 2000, wird Access die erste <b>MsgBox<\/b>-Anweisung ausf&uuml;hren.<\/p>\n<p>Der Unterschied zu einer herk&ouml;mmlichen <b>If&#8230;Then<\/b>-Bedingung und der Clou an der Sache ist, dass VBA nur den Teil des Codes kompiliert, der beim aktuellen Wert der Konstanten <b>AccessVersion <\/b>angesprungen wird. Das bedeutet, dass die .mdb\/.accdb-Datei zwar den kompletten Code im Rohformat enth&auml;lt (also das, was Sie auch im VBA-Editor sehen, auch kanonischer Code genannt), aber nur den Teil in kompilierter Fassung (P-Code), den Sie durch die <b>#If&#8230;#Then<\/b>-Bedingung zur bedingten Kompilierung freigegeben haben. Wenn Sie schon die gleiche Funktion f&uuml;r zwei verschiedene Access-Versionen im Projekt haben, brauchen Sie ja nicht auch noch das Kompilat des jeweils nicht ben&ouml;tigten Teils mitzuschleppen.<\/p>\n<p>Noch besser wird es, wenn Sie eine .mde\/.accde-Datenbank aus der Originaldatenbank erzeugen: Hier wirft Access ja bekanntlich den kompletten kanonischen Code raus und beh&auml;lt nur den P-Code. Auf unser Beispiel bezogen f&auml;llt, wenn Sie beispielsweise eine Version f&uuml;r Access 2000 bis 2003 kompilieren, der Code weg, der f&uuml;r die Ausgabe von PDFs mit dem Microsoft&apos;schen Add-In n&ouml;tig war.<\/p>\n<p><b>Pro Modul<\/b><\/p>\n<p>Leider ist die G&uuml;ltigkeit der Konstanten f&uuml;r die bedingte Kompilierung auf ein Modul beschr&auml;nkt, und es gibt auch immer nur eine solche Konstante. Dabei spielt es allerdings keine Rolle, ob Sie die Konstante innerhalb einer Routine oder im Modulkopf festlegen. Es ist sogar egal, ob Sie die <b>#If&#8230;#Then<\/b>-Anweisung zur bedingten Kompilierung innerhalb oder au&szlig;erhalb von Routinen unterbringen. Das kann zum Beispiel auch so aussehen:<\/p>\n<pre>Public Sub Test()\r\n#Const AccessVersion = 2000\r\nEnd Sub\r\n#If AccessVersion = 2000 Then\r\nPublic Sub BeispielBedingteKompilierung()\r\n    MsgBox &quot;2000&quot;\r\nEnd Sub\r\n#ElseIf AccessVersion = 2007 Then\r\nPublic Sub BeispielBedingteKompilierung()\r\n    MsgBox &quot;2007&quot;\r\nEnd Sub\r\n#End If<\/pre>\n<p><!--30percent--><\/p>\n<p>In diesem Beispiel gibt es dieselbe Routine gleich zweimal. Welche der beiden ausgef&uuml;hrt wird, entscheidet der Wert der Konstanten <b>AccessVersion<\/b>, die sich hier einmal innerhalb einer Routine befindet. Der Grund f&uuml;r die lockere Handhabung ist, dass VBA sich vor dem Kompilieren zun&auml;chst die mit dem Raute-Zeichen (#) beginnenden Zeilen ansieht und rauswirft, was nicht kompiliert werden soll. In diesem Fall liefert der Aufruf der Routine <b>BeispielBedingteKompilierung <\/b>erwartungsgem&auml;&szlig; den Wert <b>2000<\/b>.<\/p>\n<p><b>Globale Konstante<\/b><\/p>\n<p>Wenn sich der bedingt zu kompilierende Code &uuml;ber mehrere Module verteilt, bedeutet das Kompilieren f&uuml;r verschiedene Versionen auf die Dauer viel Arbeit. Zum Gl&uuml;ck gibt es eine Einstellung in den Eigenschaften eines VBA-Projekts, mit der Sie eine globale Konstante f&uuml;r diesen Zweck festlegen k&ouml;nnen. Diese Einstellung finden Sie im Eigenschaften-Dialog des VBA-Projekts (<b>Extras|Eigenschaften von &lt;Projektname&gt;&#8230;<\/b>).<\/p>\n<p>L&ouml;schen Sie zun&auml;chst die entsprechende Zeile aus dem VBA-Code und probieren Sie, ob die bedingte Kompilierung noch wie erwartet arbeitet. Da die Routine <b>BeispielBedingteKompilierung <\/b>nur aufgerufen werden d&uuml;rfte, wenn die Konstante den Wert <b>2000 <\/b>oder <b>2007 <\/b>enth&auml;lt, sollte nun eine Fehlermeldung erscheinen, da &uuml;berhaupt kein Wert festgelegt ist.<\/p>\n<p>Tragen Sie nun im Eigenschaftsfenster unter <b>Argumente f&uuml;r bedingte Kompilierung <\/b>den Ausdruck ein, den Sie normalerweise im VBA-Code hinter <b>#Const <\/b>eingef&uuml;gt haben (siehe Bild 1). Ein erneuter Aufruf von <b>BeispielBedingteKompilierung <\/b>d&uuml;rfte nun wieder funktionieren und das Meldungsfenster mit der entsprechenden Versionsnummer anzeigen. Somit k&ouml;nnen Sie zumindest eine globale Konstante festlegen, statt diese gegebenenfalls in mehreren Modulen &auml;ndern zu m&uuml;ssen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_04\/BedingteCompilierung-web-images\/pic001_opt.jpeg\" alt=\"pic001.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Das Eigenschaftsfenster eines VBA-Projekts<\/span><\/b><\/p>\n<p><b>Dynamische bedingte Kompilierung<\/b><\/p>\n<p>Nach aktuellem Stand m&uuml;ssen Sie zum Kompilieren die Konstante, wenn auch global, von Hand setzen. Konstanten hei&szlig;en nun einmal so, weil man sie nicht wie eine Variable nach Lust und Laune &auml;ndern kann, ohne in den Code einzugreifen. Das ist schade, denn es w&auml;re praktisch, wenn diese Konstante automatisch auf die Access-Version eingestellt werden k&ouml;nnte, in der die Anwendung gerade ge&ouml;ffnet wird.<\/p>\n<p>Mit der im VBA-Code definierten Konstanten geht dies tats&auml;chlich nicht, aber haben wir diese nicht gerade in ein Eigenschaftsfenster eingetragen Vielleicht kommt man da ja irgendwie heran &#8211; das klappt doch sonst immer recht gut. Und siehe da: Es gibt tats&auml;chlich eine per VBA erreichbare Option, mit der sich diese Eigenschaft &auml;ndern l&auml;sst. F&uuml;hren Sie einfach einmal die folgende Anweisung im Direktfenster des VBA-Editors aus:<\/p>\n<pre>Application.SetOption &quot;Conditional Compilation Arguments&quot;,&quot;AccessVersion=2000&quot;<\/pre>\n<p>&Ouml;ffnen Sie dann die Projekteigenschaften und schauen Sie sich die Argumente f&uuml;r die bedingte Kompilierung an. Dort steht der soeben festgelegte Wert! Schlie&szlig;en Sie das Fenster wieder und pr&uuml;fen Sie mit einem Aufruf von <b>BeispielBedingteKompilierung<\/b>, ob die bedingte Kompilierung wie erwartet arbeitet. Stellen Sie den Wert nun auf 2007 ein:<\/p>\n<pre>Application.SetOption &quot;Conditional Compilation Arguments&quot;,&quot;AccessVersion=2007&quot;<\/pre>\n<p>Auch das funktioniert. Wie k&ouml;nnen Sie davon profitieren Ganz einfach: Sie m&uuml;ssen nur beim Start der Anwendung pr&uuml;fen, unter welcher Access-Version diese ge&ouml;ffnet wurde, und die Konstante <b>AccessVersion <\/b>entsprechend einstellen. Access wird dann zur Laufzeit nur die durch die <b>#If&#8230;#Then<\/b>-Anweisung festgelegten Routinen oder Anweisungen kompilieren und ausf&uuml;hren.<\/p>\n<p><b>Konstante per Makro festlegen<\/b><\/p>\n<p>Die Konstante m&uuml;ssen Sie nat&uuml;rlich direkt beim Start der Anwendung festlegen. Den Aufruf der dazu ben&ouml;tigten Funktion erledigt das Makro <b>Autoexec<\/b>, das Access beim Start automatisch ausf&uuml;hrt (siehe Bild 2). Das Makro ruft die VBA-Funktion <b>Start <\/b>auf, die mit der Eigenschaft <b>Version <\/b>die Access-Version abfragt. Diese liefert einen Wert wie <b>11.0<\/b> oder <b>12.0<\/b>. Dabei ist nur die Zahl vor dem Komma relevant, die man mit der V<b>al<\/b>-Funktion erh&auml;lt. <\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_04\/BedingteCompilierung-web-images\/pic002_opt.jpeg\" alt=\"pic002.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Das Makro AutoExec ruft beim Start der Anwendung die Funktion Start() auf.<\/span><\/b><\/p>\n<p>F&uuml;r dieses Beispiel ist es interessant, ob die Anwendung in Access 2007 oder einer &auml;lteren Version ge&ouml;ffnet wurde. Access 2000 entspricht 9.0, Access 2002 10.0, Access 2003 11.0 und Access 2007 12.0. Die Routine muss also nur pr&uuml;fen, ob die Versionsnummer den Wert 12 aufweist. Im Hinblick auf die kommende Version 14 verwenden wir aber nicht den Vergleichswert <b>=12<\/b>, sondern <b>&gt;11<\/b>:<\/p>\n<pre>Public Function Start()\r\n    If Val(Application.Version) &gt; 11 Then\r\n        Application.SetOption _\r\n            &quot;Conditional Compilation Arguments&quot;, _\r\n            &quot;AccessVersion=2007&quot;\r\n    Else\r\n        Application.SetOption _\r\n            &quot;Conditional Compilation Arguments&quot;, _\r\n            &quot;AccessVersion=2000&quot;\r\n    End If\r\nEnd Function<\/pre>\n<p><b>Bedingter PDF-Export<\/b><\/p>\n<p>Damit das Ganze auch noch einen praktischen Anstrich erh&auml;lt, schauen wir uns noch das Beispiel zum versionsabh&auml;ngigen Export von Berichten im PDF-Format an. Voraussetzung f&uuml;r die Funktion ist das Vorhandensein der oben genannten Office 2007-Erweiterung um PDF-Funktionen von Microsoft sowie die beiden DLLs f&uuml;r die Version f&uuml;r Access 2000 bis 2003 von Stephen Lebans (Download siehe oben). Die Beispieldatenbank enth&auml;lt eine modifizierte Fassung des notwendigen Codes von Stephen Lebans im Modul <b>mdlReportToPDF<\/b>.<\/p>\n<p>Es soll sowohl unter Access 2007 als auch f&uuml;r die &auml;lteren Versionen eine Funktion namens <b>PDFExport <\/b>bereitstehen, die den Bericht mit dem angegebenen Namen in die gew&uuml;nschte Datei schreibt:<\/p>\n<pre>#If AccessVersion = 2000 Then\r\nPublic Sub PDFExport(strReport As String, _\r\n        strFilename As String)\r\n    ConvertReportToPDF strReport, , _\r\n    strFilename\r\nEnd Sub\r\n#ElseIf AccessVersion = 2007 Then\r\nPublic Sub PDFExport(strReport As String, _\r\n        strFilename As String)\r\n    DoCmd.OutputTo acOutputReport, strReport, _\r\n        acFormatPDF, strFilename\r\nEnd Sub\r\n#End If<\/pre>\n<p>Wenn Sie die bedingte Kompilierung konsequent fortsetzen m&ouml;chten, m&uuml;ssen Sie nat&uuml;rlich auch alle Funktionen durch eine <b>#If&#8230;#Then<\/b>-Anweisung ausklammern, die nur f&uuml;r den Lebans&apos;schen PDF-Export ben&ouml;tigt werden. Dazu fassen Sie den kompletten Inhalt des Moduls wie folgt ein:<\/p>\n<pre>#If AccessVersion = 2000 Then\r\n&apos;... Modulinhalt\r\n#End If<\/pre>\n<p><b>Kombinierte Konstanten<\/b><\/p>\n<p>Leider gibt es immer nur eine globale Konstante. In dieser kann man aber durchaus mehrere Informationen unterbringen, indem man beispielsweise Betriebssystem und Access-Version durch einen Unterstrich trennt und diesen Ausdruck dann in der <b>#If&#8230;#Then<\/b>-Anweisung entsprechend auswertet, zum Beispiel mit den Ausdr&uuml;cken <b>Vista_2007<\/b>,<b> XP_2007<\/b>, <b>Vista_2003 <\/b>oder <b>XP_2003<\/b>.<\/p>\n<p>Diese Ausdr&uuml;cke m&uuml;ssten Sie dann in vier verschiedenen Zweigen abarbeiten. Damit ist sp&auml;testens hier der Hinweis angebracht, dass Sie selbstverst&auml;ndlich auch <b>#ElseIf <\/b>und <b>#Else <\/b>im <b>#If&#8230;#Then<\/b>-Konstrukt verwenden k&ouml;nnen.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die bedingte Kompilierung k&ouml;nnen Sie hervorragend einsetzen, wenn Sie versions&uuml;bergreifende Access-Anwendungen programmieren m&ouml;chten, die versionsabh&auml;ngige Funktionen nutzen.<\/p>\n<p>Es gibt aber noch weitere wichtige Einsatzorte: So k&ouml;nnen Sie beispielsweise eine Anwendung programmieren, die speziellen Code sowohl f&uuml;r den Entwicklungsrechner als auch f&uuml;r den sp&auml;teren produktiven Einsatz ben&ouml;tigt.<\/p>\n<p>Und wie der Beitrag Debugging im VBA-Editor zeigt, gibt es auch beim Debugging von Code sinnvolle Einsatzm&ouml;glichkeiten f&uuml;r die bedingte Kompilierung: Beispielsweise, damit der Entwickler zum Testen angelegte <b>MsgBox<\/b>-Anweisungen wahlweise aktivieren oder deaktivieren kann.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>BedingteKompilierung.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/9C1D2C2D-E952-4C70-ABCA-8C728BD4DF24\/aiu_622.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Access 2007 ist wieder mal eine neue Version erschienen. Damit stellt sich f&uuml;r Softwareentwickler und auch f&uuml;r Anwender die Frage, ob man zu dieser Version wechseln sollte oder vielleicht versucht, eine Anwendung so weit anzupassen, dass diese auch mit der neuen Version zusammenarbeitet und gleichzeitig die vorhandenen Versionen unterst&uuml;tzt. Wie sich das f&uuml;r einzelne Features umsetzen l&auml;sst, zeigen wir am Beispiel PDF-Export.<\/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":[662008,66042008,44000025],"tags":[],"class_list":["post-55000622","post","type-post","status-publish","format-standard","hentry","category-662008","category-66042008","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>Bedingte Kompilierung am Beispiel des PDF-Exports - 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\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bedingte Kompilierung am Beispiel des PDF-Exports\" \/>\n<meta property=\"og:description\" content=\"Mit Access 2007 ist wieder mal eine neue Version erschienen. Damit stellt sich f&uuml;r Softwareentwickler und auch f&uuml;r Anwender die Frage, ob man zu dieser Version wechseln sollte oder vielleicht versucht, eine Anwendung so weit anzupassen, dass diese auch mit der neuen Version zusammenarbeitet und gleichzeitig die vorhandenen Versionen unterst&uuml;tzt. Wie sich das f&uuml;r einzelne Features umsetzen l&auml;sst, zeigen wir am Beispiel PDF-Export.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-11T21:22:02+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82\" \/>\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=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Bedingte Kompilierung am Beispiel des PDF-Exports\",\"datePublished\":\"2021-02-11T21:22:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/\"},\"wordCount\":1769,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/9fb587cb46e54957a6b80a5108e75d82\",\"articleSection\":[\"2008\",\"4\\\/2008\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/\",\"name\":\"Bedingte Kompilierung am Beispiel des PDF-Exports - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/9fb587cb46e54957a6b80a5108e75d82\",\"datePublished\":\"2021-02-11T21:22:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/9fb587cb46e54957a6b80a5108e75d82\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/9fb587cb46e54957a6b80a5108e75d82\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bedingte Kompilierung am Beispiel des PDF-Exports\"}]},{\"@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":"Bedingte Kompilierung am Beispiel des PDF-Exports - 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\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/","og_locale":"de_DE","og_type":"article","og_title":"Bedingte Kompilierung am Beispiel des PDF-Exports","og_description":"Mit Access 2007 ist wieder mal eine neue Version erschienen. Damit stellt sich f&uuml;r Softwareentwickler und auch f&uuml;r Anwender die Frage, ob man zu dieser Version wechseln sollte oder vielleicht versucht, eine Anwendung so weit anzupassen, dass diese auch mit der neuen Version zusammenarbeitet und gleichzeitig die vorhandenen Versionen unterst&uuml;tzt. Wie sich das f&uuml;r einzelne Features umsetzen l&auml;sst, zeigen wir am Beispiel PDF-Export.","og_url":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-11T21:22:02+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Bedingte Kompilierung am Beispiel des PDF-Exports","datePublished":"2021-02-11T21:22:02+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/"},"wordCount":1769,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82","articleSection":["2008","4\/2008","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/","url":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/","name":"Bedingte Kompilierung am Beispiel des PDF-Exports - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82","datePublished":"2021-02-11T21:22:02+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/9fb587cb46e54957a6b80a5108e75d82"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Bedingte_Kompilierung_am_Beispiel_des_PDFExports\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Bedingte Kompilierung am Beispiel des PDF-Exports"}]},{"@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\/55000622","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=55000622"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000622\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}