{"id":55000847,"date":"2012-08-01T00:00:00","date_gmt":"2020-05-22T21:47:45","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=847"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Drucker_im_Griff","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/","title":{"rendered":"Drucker im Griff"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Berichte drucken Kein Problem: Dialoge wie die Seiteneinstellungen und der Drucken-Dialog liefern doch alles, was das Herz an Einstellungsm&ouml;glichkeiten begehrt. Aber was, wenn Sie mal per VBA eingreifen m&ouml;chten &#8211; zum Beispiel, weil der Benutzer ganz einfach zwei Exemplare eines Dokuments mit einem Mausklick drucken m&ouml;chte Oder weil Sie zur Laufzeit die Anzahl der Spalten eines Berichts einstellen m&ouml;chten Dies l&auml;sst sich nat&uuml;rlich per VBA erledigen. Dieser Beitrag zeigt, wie es funktioniert.<\/b><\/p>\n<p><b>Alle Drucker auflisten<\/b><\/p>\n<p>Wenn auf Ihrem System mehr als ein Drucker installiert ist, was in Anbetracht der vielen g&auml;ngigen virtuellen Drucker wahrscheinlich ist, m&ouml;chten Sie diese zun&auml;chst auflisten.<\/p>\n<p>Eine durch Semikola getrennte Liste k&ouml;nnen Sie sp&auml;ter beispielsweise als Datensatzherkunft eines Kombinationsfeldes verwenden (s. Bild 1). Zun&auml;chst einmal geben wir diese Liste jedoch einfach im Direktfenster aus, und zwar mit diesem Befehl:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Auswahl von Druckern per Kombinationsfeld<\/span><\/b><\/p>\n<pre>Debug.Print Druckerliste<\/pre>\n<p>Die dazu passende Funktion <b>Druckerliste <\/b>hat folgenden Code:<\/p>\n<pre>Public Function Druckerliste() As String\r\n    Dim strTemp As String\r\n    Dim objDrucker As Printer\r\n    Dim i As Integer\r\n    For i = 0 To Printers.Count - 1\r\n        Set objDrucker = Printers(i)\r\n        strTemp = strTemp &amp; &quot;;&quot; &amp; i &amp; &quot;;&quot; &amp; objDrucker.DeviceName\r\n    Next i\r\n    If Len(strTemp) &gt; 0 Then\r\n        strTemp = Mid(strTemp, 2)\r\n    End If\r\n    Druckerliste = strTemp\r\nEnd Function<\/pre>\n<p>Diese Funktion verwendet die Auflistung <b>Printers<\/b>, die f&uuml;r alle dem System bekannten Drucker je ein Element enth&auml;lt. Um alle Drucker zu ermitteln, durchl&auml;uft die Funktion eine Schleife &uuml;ber alle enthaltenen Elemenge, wobei die Anzahl mit der Eigenschaft <b>Count <\/b>der <b>Printers<\/b>-Auflistung ermittelt wird. Innerhalb der Schleife wird das jeweilige <b>Printer<\/b>-Element mit der Variablen <b>objDrucker<\/b> referenziert. Der Index sowie der Druckername werden in einer durch Semikola separierten Liste erfasst, die beispielsweise so aussieht:<\/p>\n<p>0;Snagit 9;1;SnagIt 8;2;PDF-XChange 3.0;3;Microsoft XPS Document Writer;4;HP Officejet 4500 G510a-f;5;Fax;6;Brother QL-570 LE;7;Adobe PDF;8;\\\\MACBOOKPRO\\Canon Inkjet iP2600 series<\/p>\n<p>Ein <b>Printer<\/b>-Objekt besitzt neben <b>DeviceName <\/b>noch einige weitere Eigenschaften. Um diese &uuml;bersichtlich darzustellen, verwenden wir ein Formular.<\/p>\n<p>Dieses enth&auml;lt ein Kombinationsfeld zur Auswahl des Druckers, das sinnvollerweise mit der Funktion <b>Druckerliste <\/b>gef&uuml;llt wird, sowie einige Steuerelemente, welche weitere Eigenschaften des ausgew&auml;hlten <b>Printer<\/b>-Objekts anzeigen.<\/p>\n<p>Nach der Auswahl des Druckers soll das Formular die &uuml;ber das <b>Printer<\/b>-Objekt verf&uuml;gbaren Daten wie in Bild 2 anzeigen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Ausgabe von Druckerinformationen<\/span><\/b><\/p>\n<p>Dazu soll zun&auml;chst beim &Ouml;ffnen des Formulars das Kombinationsfeld <b>cboDrucker <\/b>mit dem Ergebnis der Funktion <b>Druckerliste <\/b>gef&uuml;llt werden. Au&szlig;erdem soll das Kombinationsfeld direkt beim &Ouml;ffnen des Formulars den ersten Eintrag der Liste anzeigen.<\/p>\n<p>Schlie&szlig;lich sorgt ein Aufruf der Funktion <b>DruckereigenschaftenEinlesen <\/b>daf&uuml;r, dass die &uuml;brigen Steuerelemente des Formulars gef&uuml;llt werden:<\/p>\n<pre>Private Sub Form_Load()\r\n    Me!cboDrucker.RowSource = Druckerliste\r\n    Me!cboDrucker = Me!cboDrucker.ItemData(0)\r\n    DruckereigenschaftenEinlesen\r\nEnd Sub<\/pre>\n<p>Der Code der Prozedur <b>DruckereigenschaftenEinlesen <\/b>sieht so aus:<\/p>\n<pre>Private Sub DruckereigenschaftenEinlesen()\r\n    Dim objDrucker As Printer\r\n    Set objDrucker = Printers.Item(CLng(Me!cboDrucker))\r\n    With objDrucker\r\n        Me!txtBottomMargin = .BottomMargin\r\n        Me!txtLeftMargin = .LeftMargin\r\n        Me!txtRightMargin = .RightMargin\r\n        Me!txtTopMargin = .TopMargin\r\n        Me!cboColorMode = .ColorMode\r\n        Me!txtColumnSpacing = .ColumnSpacing\r\n        Me!txtCopies = .Copies\r\n        Me!chkDataOnly = .DataOnly\r\n        Me!chkDefaultSize = .DefaultSize\r\n        Me!txtDrivername = .DriverName\r\n        Me!cboDuplex = .Duplex\r\n        Me!cboItemLayout = .ItemLayout\r\n        Me!txtItemsAcross = .ItemsAcross\r\n        Me!txtItemSizeHeight = .ItemSizeHeight\r\n        Me!txtItemSizeWidth = .ItemSizeWidth\r\n        Me!cboOrientation = .Orientation\r\n        Me!cboPaperBin = .PaperBin\r\n        Me!cboPaperSize = .PaperSize\r\n        Me!txtPort = .Port\r\n        Me!cboPrintQuality = .PrintQuality\r\n        Me!txtRowSpacing = .RowSpacing\r\n    End With\r\nEnd Sub<\/pre>\n<p>Die Prozedur ermittelt zun&auml;chst den im Kombinationsfeld <b>cboDrucker <\/b>ausgew&auml;hlten Index und liest das entsprechende <b>Printer<\/b>-Objekt in die Variable <b>objDrucker <\/b>ein. Danach schreibt sie die Werte der einzelnen Variablen in die entsprechenden Steuerelemente.<\/p>\n<p>Die Eigenschaften erwarten <b>Long<\/b>&#8211; und <b>Boolean<\/b>-Werte, wobei die <b>Long<\/b>-Werte teilweise mit Konstanten gef&uuml;llt werden k&ouml;nnen.<\/p>\n<p>Die entsprechenden Konstantenlisten sind in der Eigenschaft <b>Datensatzherkunft <\/b>der Kombinationsfelder hinterlegt, f&uuml;r das Steuerelement <b>cboOrientation <\/b>beispielsweise wie folgt:<\/p>\n<pre>1;&quot;acPRORPortrait&quot;;2;&quot;acPRORLandscape&quot;<\/pre>\n<p>Dadurch stehen dann die beiden Zeichenfolgen <b>acPRORPortrait <\/b>und <b>acPRORLandscape <\/b>zur Auswahl bereit.<\/p>\n<p>Damit die Daten bei Auswahl eines neuen Druckers im Kombinationsfeld <b>cboDrucker <\/b>aktualisiert werden, l&ouml;st dies die Prozedur <b>Nach Aktualisierung <\/b>des Kombinationsfeldes aus:<\/p>\n<pre>Private Sub cboDrucker_AfterUpdate()\r\n    DruckereigenschaftenEinlesen\r\nEnd Sub<\/pre>\n<p>Hier ist zu erw&auml;hnen, dass einige Eigenschaften erst in Zusammenhang mit dem zu druckenden Bericht mit sinnvollen Daten gef&uuml;llt werden &#8211; mehr dazu weiter unten.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Drucker ausw&auml;hlen<\/p>\n<p>Um die Auswahl der Drucker zu erleichtern, haben wir au&szlig;erdem eine Ereignisprozedur hinterlegt, die beim Bet&auml;tigen der <b>Nach oben<\/b>&#8211; und der <b>Nach unten<\/b>-Taste ausgel&ouml;st wird und jeweils den n&auml;chsten beziehungsweise den vorherigen Eintrag ausw&auml;hlt:<\/p>\n<pre>Private Sub cboDrucker_KeyDown(KeyCode As Integer, Shift As Integer)\r\n    Select Case KeyCode\r\n        Case 38, 40\r\n            Select Case KeyCode\r\n                Case 38 ''nach oben\r\n                    If CLng(Me!cboDrucker) &gt; 0 Then\r\n                        Me!cboDrucker = Me!cboDrucker - 1\r\n                    End If\r\n                Case 40 ''nach unten\r\n                    If CLng(Me!cboDrucker) &lt; Me!cboDrucker.ListCount - 1 Then\r\n                        Me!cboDrucker = Me!cboDrucker + 1\r\n                    End If\r\n            End Select\r\n            DruckereigenschaftenEinlesen\r\n            KeyCode = 0\r\n    End Select\r\nEnd Sub<\/pre>\n<p>Da der Index der <b>Printers<\/b>-Auflistung als gebundene Spalte des Kombinationsfeldes &uuml;bernommen wurde (also 0, 1, 2&#8230;), k&ouml;nnen Sie durch einfaches Addieren oder Subtrahieren des Wertes <b>1 <\/b>den vorherigen oder den folgenden Listeneintrag ausw&auml;hlen.<\/p>\n<p><b>Standarddrucker f&uuml;r Access festlegen<\/b><\/p>\n<p>F&uuml;r Access ist ein Standarddrucker festgelegt, den Sie beispielsweise im <b>Drucken<\/b>-Dialog finden (s. Bild 3). Dieser Drucker wird auch etwa beim Drucken von Berichten verwendet, wenn dort kein anderer Drucker festgelegt ist. Um diesen Standarddrucker per VBA festzulegen, haben wir im Formular zur Auswahl der Drucker eine Schaltfl&auml;che namens <b>cmdStandarddrucker <\/b>hinterlegt. Diese l&ouml;st die folgende Prozedur aus, wobei zun&auml;chst der im Kombinationsfeld ausgew&auml;hlte Drucker ermittelt und dann durch Zuweisung an die Eigenschaft <b>Printer <\/b>des <b>Application<\/b>-Objekts als Standarddrucker festgelegt wird:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Der Drucken-Dialog von Access mit dem Standarddrucker<\/span><\/b><\/p>\n<pre>Private Sub cmdStandarddrucker_Click()\r\n    Dim objDrucker As Printer\r\n    Set objDrucker = Printers.Item(CLng(Me!cboDrucker))\r\n    Application.Printer = objDrucker\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p>Der hier festgelegte Drucker wird beim Erstellen neuer Berichte als Standarddrucker f&uuml;r diesen Bericht verwendet. Wenn Sie anschlie&szlig;end einen anderen Standarddrucker festlegen, beh&auml;lt der Bericht den zum Zeitpunkt der Erstellung g&uuml;ltigen Standarddrucker.<\/p>\n<p><b>Standarddrucker f&uuml;r einen Bericht festlegen<\/b><\/p>\n<p>Wenn Sie einen Standarddrucker f&uuml;r einen Bericht festlegen m&ouml;chten, der auch bei &auml;nderung des Access-Standarddruckers beibehalten wird, m&uuml;ssen Sie den Bericht im Entwurf &ouml;ffnen. Wenn Sie diese &auml;nderung manuell vornehmen m&ouml;chten, erledigen Sie dies, indem Sie zun&auml;chst den Bericht in der Entwurfsansicht anzeigen und dann den Dialog <b>Seite einrichten <\/b>&ouml;ffnen.<\/p>\n<p>Dort w&auml;hlen Sie unter <b>Drucker f&uuml;r &#8230; <\/b>die Option <b>Spezieller Drucker <\/b>aus. Mit einem Klick auf die Schaltfl&auml;che <b>Drucker&#8230; <\/b>&ouml;ffnen Sie einen weiteren Dialog, mit dem Sie den gew&uuml;nschten Dialog ausw&auml;hlen k&ouml;nnen (s. Bild 4). Das Festlegen eines speziellen Druckers kann beispielsweise sinnvoll sein, wenn die Abmessungen des Berichts auf einen bestimmten Drucker abgestimmt sind.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic004.png\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Festlegen eines speziellen Druckers f&uuml;r einen Bericht<\/span><\/b><\/p>\n<p>Um diese &auml;nderung per VBA vorzunehmen, &ouml;ffnen Sie den Bericht ebenfalls in der Entwurfsansicht (gegebenenfalls unsichtbar), stellen erst die Eigenschaft <b>UseDefaultPrinter <\/b>auf <b>False <\/b>ein und legen dann mit der Eigenschaft <b>Printer <\/b>den speziellen Drucker fest:<\/p>\n<pre>Public Sub BerichtMitEigenemStandarddrucker_Einstellen()\r\n    Dim objDrucker As Printer\r\n    Dim rpt As Report\r\n    Dim strReport As String\r\n    strReport = &quot;rptBerichtMitStandarddrucker&quot;\r\n    DoCmd.OpenReport strReport, acViewDesign, , , acHidden\r\n    Set rpt = Reports(strReport)\r\n    rpt.UseDefaultPrinter = False\r\n    rpt.Printer = Printers(6)\r\n    DoCmd.Close acReport, strReport, acSaveYes\r\nEnd Sub<\/pre>\n<p>Anschlie&szlig;end wird der Bericht geschlossen und gespeichert.<\/p>\n<p><b>Bericht mit einem bestimmten Drucker ausgeben<\/b><\/p>\n<p>Das Festlegen eines speziellen Druckers f&uuml;r einen Bericht ist eine Methode, einen Bericht mit einem bestimmten Drucker auszugeben. Es gibt noch zwei weitere Arten, dies durchzuf&uuml;hren.<\/p>\n<p>Die erste funktioniert nur f&uuml;r Berichte, f&uuml;r die kein spezieller Drucker festgelegt wurde. Dort stellen Sie einfach tempor&auml;r den aktuellen Access-Drucker auf einen alternativen Drucker ein, drucken den Bericht und setzen den Access-Drucker dann wieder auf die Standardeinstellung zur&uuml;ck.<\/p>\n<p>Die zweite Methode gelingt unabh&auml;ngig davon, ob Sie f&uuml;r den Bericht einen speziellen Drucker festgelegt haben. Dort &ouml;ffnen Sie den Bericht, stellen den Berichtsdrucker auf einen alternativen Drucker ein, drucken diesen und schlie&szlig;en den Bericht wieder.<\/p>\n<p>Beispiele f&uuml;r diese Vorgehensweise finden Sie im Formular <b>frmDruckerAuswaehlen<\/b> (s. Bild 5).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic005.png\" alt=\"pic005.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Drucken eines Berichts mit einem alternativen Drucker<\/span><\/b><\/p>\n<p>Beim Laden des Formulars wird die Prozedur aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-36-anchor\">Listing 1<\/a><\/span> ausgel&ouml;st. Sie verwendet eine erweiterte Version der Funktion <b>Druckerliste<\/b>, die nun mit den zwei optionalen Parametern <b>strStandard <\/b>und <b>intStandard <\/b>arbeitet. Der Parameter <b>strStandard <\/b>erwartet den Namen des als Standard zu markierenden Druckers, der Parameter <b>intStandard <\/b>liefert den Index dieses Druckers in der Auflistung <b>Printers <\/b>zur&uuml;ck. Dadurch kann das mit der Funktion Druckerliste gef&uuml;llte Kombinationsfeld gleich auf den Standarddrucker eingestellt werden.<\/p>\n<p class=\"listingueberschrift\">Listing 1: F&uuml;llen des Kombinationsfeldes mit allen Drucken und Vorauswahl des Standarddruckers<\/p>\n<pre>Private Sub Form_Load()\r\n    Dim strStandard As String\r\n    Dim intStandard As Integer\r\n    strStandard = Application.Printer.DeviceName\r\n    Me!cboAccessdrucker.RowSource = Druckerliste(strStandard, intStandard)\r\n    Me!cboAccessdrucker = Me!cboAccessdrucker.ItemData(intStandard)\r\nEnd Sub<\/pre>\n<p>Das Formular besitzt au&szlig;erdem ein Kombinationsfeld, dass alle Berichte der aktuellen Datenbank anzeigt. Es wird mit der folgenden Abfrage gef&uuml;llt:<\/p>\n<pre>SELECT Name FROM MSysObjects WHERE Type=-32764 ORDER BY Name;<\/pre>\n<p>Nach der Auswahl eines der Berichte soll das Kombinationsfeld cboDruckenBericht ebenfalls mit der Liste der Drucker gef&uuml;llt und der Standarddrucker f&uuml;r diesen Bericht ausgew&auml;hlt werden. Au&szlig;erdems soll das Kontrollk&auml;stchen <b>chkStandarddrucker <\/b>anzeigen, ob f&uuml;r den Bericht der Standarddrucker verwendet wird oder ob ein spezieller Drucker f&uuml;r diesen Bericht festgelegt wurde.<\/p>\n<p>Um dies zu bewerkstelligen, l&ouml;st das Kombinationsfeld <b>cboBerichte<\/b> nach der Aktualisierung die Ereignisprozedur aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-43-anchor\">Listing 2<\/a><\/span> aus.<\/p>\n<p class=\"listingueberschrift\">Listing 2: Ermittlung des Standarddruckers f&uuml;r einen Bericht<\/p>\n<pre>Private Sub cboBerichte_AfterUpdate()\r\n    Dim rpt As Report\r\n    Dim strStandard As String\r\n    Dim intStandard As Integer\r\n    DoCmd.OpenReport Me!cboBerichte, acViewPreview, , , acHidden\r\n    Set rpt = Reports(Me!cboBerichte)\r\n    Me!chkStandarddrucker = rpt.UseDefaultPrinter\r\n    Me!cmdDruckenAccess.Enabled = rpt.UseDefaultPrinter\r\n    strStandard = rpt.Printer.DeviceName\r\n    Me!cboBerichtsdrucker.RowSource = Druckerliste(strStandard, intStandard)\r\n    Me!cboBerichtsdrucker = Me!cboBerichtsdrucker.ItemData(intStandard)\r\n    DoCmd.Close acReport, Me!cboBerichte\r\nEnd Sub<\/pre>\n<p>Diese Prozedur &ouml;ffnet den Bericht zun&auml;chst verborgen in der Seitenansicht. Auf diese Weise kann er die Eigenschaft <b>UseDefaultPrinter <\/b>auslesen und au&szlig;erdem den Standarddrucker dieses Berichts ermitteln.<\/p>\n<p>Mit diesen Informationen kann das Kontrollk&auml;stchen <b>chkStandarddrucker <\/b>aktiviert werden. Au&szlig;erdem f&uuml;llt diese Prozedur das Kombinationsfeld <b>cboBerichtsdrucker <\/b>mit der Liste der verf&uuml;gbaren Drucker und zeigt direkt den Standarddrucker des Berichts an. Danach schlie&szlig;t die Prozedur den Bericht wieder.<\/p>\n<p>Fehlen noch die beiden Schaltfl&auml;chen <b>cmdDruckenAccess <\/b>und <b>cmdDruckenBericht<\/b>, mit denen der ausgew&auml;hlte Bericht auf den im jeweiligen Kombinationsfeld ausgew&auml;hlten Drucker ausgegeben werden soll.<\/p>\n<p>Die Schaltfl&auml;che <b>cmdDruckenAccess <\/b>hat den leichteren Job: Sie stellt einfach nur den im Kombinationsfeld gew&auml;hlten Drucker als Standarddrucker ein und &ouml;ffnet den Bericht in der Standardansicht. Anschlie&szlig;end setzt sie den Standarddrucker wieder zur&uuml;ck:<\/p>\n<pre>Private Sub cmdDruckenAccess_Click()\r\n    Set Application.Printer = Printers(CInt(Me!cboAccessdrucker))\r\n    DoCmd.OpenReport Me!cboBerichte, acViewNormal\r\n    Set Application.Printer = Nothing\r\nEnd Sub<\/pre>\n<p>Die Prozedur, die durch einen Mausklick auf die Schaltfl&auml;che <b>cmdDruckenBericht <\/b>ausgel&ouml;st wird, &ouml;ffnet den Bericht in der Entwurfsansicht und stellt dort f&uuml;r die Eigenschaft <b>Printer <\/b>den Standarddrucker f&uuml;r den Bericht ein. Anschlie&szlig;end &ouml;ffnet sie den Bericht in der Standardansicht, wodurch der Bericht an den angegebenen Drucker gesendet wird.<\/p>\n<p>Schlie&szlig;lich wird der Bericht geschlossen, ohne die &auml;nderungen zu speichern:<\/p>\n<pre>Private Sub cmdDruckenBericht_Click()\r\n    Dim rpt As Report\r\n    DoCmd.OpenReport Me!cboBerichte, acViewPreview, , , acHidden\r\n    Set rpt = Reports(Me!cboBerichte)\r\n    Set rpt.Printer = Printers(CInt(Me!cboBerichtsdrucker))\r\n    DoCmd.OpenReport Me!cboBerichte, acViewNormal\r\n    DoCmd.Close acReport, Me!cboBerichte\r\nEnd Sub<\/pre>\n<p><b>Druckeinstellungen &auml;ndern<\/b><\/p>\n<p>Weiter oben haben wir im Formular <b>frmDrucker <\/b>einige Eigenschaften der einzelnen Drucker ausgegeben. F&uuml;r viele davon liefert das <b>Printer<\/b>-Objekt erst sinnvolle Daten, wenn es als Objekt eines Berichts ge&ouml;ffnet wird.<\/p>\n<p>Wie Sie an diese Daten gelangen, zeigt das Formular <b>frmBerichtDruckereigenschaften<\/b>. Die dort verwendeten Techniken entsprechen weitgehend den bereits beschriebenen Techniken. Der wesentliche Unterschied ist, dass die Eigenschaften nun nicht mehr dem <b>Printer<\/b>-Objekt des <b>Application<\/b>-Objekts entnommen werden, sondern dem <b>Report<\/b>-Objekt.<\/p>\n<p>Und es gibt noch einen weiteren Unterschied: Mit dem Formular <b>frmBerichtDruckereigenschaften <\/b>k&ouml;nnen Sie auch noch die bestehenden Druckereigenschaften anpassen &#8211; zur Laufzeit!<\/p>\n<p>Das bedeutet, dass Sie mit dem Kombinationsfeld <b>cboBerichte <\/b>einen Bericht ausw&auml;hlen, der dann in der Seitenansicht ge&ouml;ffnet wird.<\/p>\n<p>Wenn Sie dann den Fokus wieder auf das Formular <b>frmBerichtDruckereigenschaften <\/b>verschieben, k&ouml;nnen Sie die Eigenschaften &auml;ndern und die Auswirkungen direkt in der Seitenansicht pr&uuml;fen (s. Bild 6).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_04\/DruckerImGriff-web-images\/pic006.png\" alt=\"pic006.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6: Einstellen der Drucken-Einstellungen f&uuml;r einen ge&ouml;ffneten Bericht<\/span><\/b><\/p>\n<p>Doch nun eines nach dem anderen. Zun&auml;chst sollen nach der Auswahl eines der Berichte die Felder des Formulars mit den entsprechenden Eigenschaften des aktuell f&uuml;r diesen Bericht festgelegten Druckers gef&uuml;llt werden.<\/p>\n<p>Dies erledigt die folgende Prozedur:<\/p>\n<pre>Private Sub cboBerichte_AfterUpdate()\r\n    Dim rpt As Report\r\n    Dim strStandard As String\r\n    Dim intStandard As Integer\r\n    DoCmd.OpenReport Me!cboBerichte, acViewPreview\r\n    Set rpt = Reports(Me!cboBerichte)\r\n    strStandard = rpt.Printer.DeviceName\r\n    Me!cboDrucker.RowSource = Druckerliste(strStandard, intStandard)\r\n    Me!cboDrucker = Me!cboDrucker.ItemData(intStandard)\r\n    DruckereigenschaftenEinlesen rpt.Printer\r\nEnd Sub<\/pre>\n<p>Die Prozedur &ouml;ffnet zun&auml;chst den gew&auml;hlten Bericht in der Seitenansicht und referenziert den Bericht mit der Objektvariablen <b>rpt<\/b>.<\/p>\n<p>Dann liest sie die Druckerliste ein und markiert den f&uuml;r diesen Bericht verwendeten Drucker. Schlie&szlig;lich ermittelt die Prozedur <b>DruckereigenschaftenEinlesen <\/b>die Eigenschaften f&uuml;r den im Parameter &uuml;bergebenen Drucker &#8211; diese Prozedur haben Sie bereits weiter oben kennengelernt.<\/p>\n<p>Nun folgt der interessante Teil: Das Anpassen einer der Eigenschaften im Formular soll sich direkt auf die Darstellung im Bericht auswirken, sp&auml;testens aber beim Anzeigen des <b>Drucken<\/b>-Dialogs. Wenn Sie also beispielsweise die Eigenschaft <b>Orientation <\/b>anpassen, soll die Seitenansicht direkt von Hochformat auf Querformat wechseln und umgekehrt.<\/p>\n<p>Andere Eigenschaften wirken sich erst beim Anzeigen des <b>Drucken<\/b>-Dialogs aus &#8211; so zum Beispiel die Eigenschaft <b>Copies<\/b>, welche die Anzahl der zu druckenden Exemplare angibt.<\/p>\n<p>Das &Uuml;bertragen der Einstellungen von den Steuerelementen des Formulars in die entsprechenden Eigenschaften des <b>Printer<\/b>-Objekts ist einfach.<\/p>\n<p>Dies erledigt jeweils eine Ereignisprozedur, die durch das Ereignis <b>Nach Aktualisierung <\/b>des jeweiligen Steuerelements ausgel&ouml;st wird.<\/p>\n<p>F&uuml;r das Steuerelement <b>txtCopies<\/b>, das die Anzahl der zu druckenden Exemplare regelt, sieht die Prozedur beispielsweise wie folgt aus:<\/p>\n<pre>Private Sub txtCopies_AfterUpdate()\r\n    Reports(Me!cboBerichte).Printer.Copies = Me!txtCopies\r\nEnd Sub<\/pre>\n<p>Die &uuml;brigen Ereignisprozedur sind genauso aufgebaut.<\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">&Uuml;bersicht der Eigenschaften<\/p>\n<p>Auf diese Weise k&ouml;nnen Sie die nachfolgend beschriebenen Eigenschaften des <b>Printer<\/b>-Objekts anpassen:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>BottomMargin<\/b>, <b>LeftMargin<\/b>, <b>RightMargin<\/b>, <b>TopMargin<\/b>: R&auml;nder des Berichts<\/li>\n<li class=\"aufz-hlung\"><b>ColorMode<\/b>: Gibt an, ob der Ausdruck farbig oder schwarz erfolgen soll.<\/li>\n<li class=\"aufz-hlung\"><b>ColumnSpacing<\/b>: Abstand zwischen zwei Spalten bei mehrspaltigen Layouts<\/li>\n<li class=\"aufz-hlung\"><b>Copies<\/b>: Anzahl der zu druckenden Exemplare<\/li>\n<li class=\"aufz-hlung\"><b>DataOnly<\/b>: Gibt an, ob nur die Daten des Detailbereichs ohne grafische Elemente gedruckt werden sollen.<\/li>\n<li class=\"aufz-hlung\"><b>DefaultSize<\/b>: Gibt an, ob der Bericht &uuml;ber die Breite des Detailbereichs erstellt werden soll oder &uuml;ber die mit ItemSizeWidth angegebene Breite.<\/li>\n<li class=\"aufz-hlung\"><b>Duplex<\/b>: Gibt an, ob Duplexdruck erfolgen soll.<\/li>\n<li class=\"aufz-hlung\"><b>ItemLayout<\/b>: Legt fest, ob die Eintr&auml;ge bei mehrspaltigen Layouts erst von links nach rechts oder von oben nach unten sortiert werden sollen.<\/li>\n<li class=\"aufz-hlung\"><b>ItemsAcross<\/b>: Gibt die Anzahl der Spalten f&uuml;r mehrspaltige Layouts an.<\/li>\n<li class=\"aufz-hlung\"><b>ItemSizeHeight<\/b>:<\/li>\n<li class=\"aufz-hlung\"><b>ItemSizeWidth<\/b>: Breite einer Spalte, wenn <b>DefaultSize <\/b>auf <b>False <\/b>eingestellt wurde<\/li>\n<li class=\"aufz-hlung\"><b>Orientation<\/b>: Ausrichtung der Seite, also Hochformat oder Querformat<\/li>\n<li class=\"aufz-hlung\"><b>PaperBin<\/b>: Papierfach<\/li>\n<li class=\"aufz-hlung\"><b>PaperSize<\/b>: Papiergr&ouml;&szlig;e<\/li>\n<li class=\"aufz-hlung\"><b>PrintQuality<\/b>: Druckqualit&auml;t<\/li>\n<li class=\"aufz-hlung\"><b>RowSpacing<\/b>: Abstand zwischen zwei Bereichen<\/li>\n<\/ul>\n<p><b>&Ouml;ffnen der Berichtsvorschau und des Drucken-Dialogs<\/b><\/p>\n<p>Der <b>Drucken<\/b>-Dialog kann per VBA nicht einzeln ge&ouml;ffnet werden, sondern nur bei aktiviertem Bericht. Die Schaltfl&auml;che <b>Drucken-Dialog <\/b>zeigt daher zun&auml;chst den im Kombinationsfeld cboBerichte ausgew&auml;hlten Bericht an und &ouml;ffnet dann den <b>Drucken<\/b>-Dialog. Dies geschieht dann durch einen einfachen Aufruf der <b>RunCommand<\/b>-Methode mit der Konstanten <b>acCmdPrint<\/b>.<\/p>\n<pre>Private Sub cmdDruckdialog_Click()\r\n    DoCmd.OpenReport Me!cboBerichte, acViewPreview\r\n    On Error Resume Next\r\n    RunCommand acCmdPrint\r\n    On Error GoTo 0\r\nEnd Sub<\/pre>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Wenn Sie einmal die zum Einstellen der Drucker-Eigenschaften n&ouml;tigen Techniken in Ihre Anwendung &uuml;bernommen haben, k&ouml;nnen Sie damit Einiges anfangen. Ein Beispiel ist das dynamische Erstellen eines Berichts, dessen Spaltenzahl beim Entwerfen des Berichts noch nicht bekannt ist.<\/p>\n<p>Oder Sie bieten dem Benutzer an, per Mausklick auf eine Schaltfl&auml;che nicht nur eine, sondern gleich mehrere Kopien eines Berichts zu drucken &#8211; gegebenenfalls k&ouml;nnen Sie dem Benutzer auch ein Textfeld zur Eingabe der gew&uuml;nschten Anzahl bereitstellen.<\/p>\n<p>Zu beachten ist allerdings, dass die im Beispielformular verwendeten Auswahlwerte dem VBA-Objektmodell entnommen wurden und in einigen F&auml;llen nicht mit den eigentlichen M&ouml;glichkeiten der Berichte entsprechen.<\/p>\n<p>Diese m&uuml;ssten Sie den Treibern der Berichte entnehmen. F&uuml;r herk&ouml;mmliche F&auml;lle sollten Sie jedoch mit den vorhandenen M&ouml;glichkeiten auskommen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>DruckerImGriff.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{7FA43267-639C-437C-8E0A-ADE6D384E7A0}\/aiu_847.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Berichte drucken Kein Problem: Dialoge wie die Seiteneinstellungen und der Drucken-Dialog liefern doch alles, was das Herz an Einstellungsm&ouml;glichkeiten begehrt. Aber was, wenn Sie mal per VBA eingreifen m&ouml;chten &#8211; zum Beispiel, weil der Benutzer ganz einfach zwei Exemplare eines Dokuments mit einem Mausklick drucken m&ouml;chte Oder weil Sie zur Laufzeit die Anzahl der Spalten eines Berichts einstellen m&ouml;chten Dies l&auml;sst sich nat&uuml;rlich per VBA erledigen. Dieser Beitrag zeigt, wie es funktioniert.<\/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":[662012,66042012,44000024],"tags":[],"class_list":["post-55000847","post","type-post","status-publish","format-standard","hentry","category-662012","category-66042012","category-Berichte_und_Reporting"],"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>Drucker im Griff - 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\/Drucker_im_Griff\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Drucker im Griff\" \/>\n<meta property=\"og:description\" content=\"Berichte drucken Kein Problem: Dialoge wie die Seiteneinstellungen und der Drucken-Dialog liefern doch alles, was das Herz an Einstellungsm&ouml;glichkeiten begehrt. Aber was, wenn Sie mal per VBA eingreifen m&ouml;chten - zum Beispiel, weil der Benutzer ganz einfach zwei Exemplare eines Dokuments mit einem Mausklick drucken m&ouml;chte Oder weil Sie zur Laufzeit die Anzahl der Spalten eines Berichts einstellen m&ouml;chten Dies l&auml;sst sich nat&uuml;rlich per VBA erledigen. Dieser Beitrag zeigt, wie es funktioniert.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:47:45+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755\" \/>\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=\"14\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Drucker im Griff\",\"datePublished\":\"2020-05-22T21:47:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/\"},\"wordCount\":2344,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/63c64be340564ab9a54bd6919d73b755\",\"articleSection\":[\"2012\",\"4\\\/2012\",\"Berichte und Reporting\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/\",\"name\":\"Drucker im Griff - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/63c64be340564ab9a54bd6919d73b755\",\"datePublished\":\"2020-05-22T21:47:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/63c64be340564ab9a54bd6919d73b755\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/63c64be340564ab9a54bd6919d73b755\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Drucker_im_Griff\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Drucker im Griff\"}]},{\"@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":"Drucker im Griff - 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\/Drucker_im_Griff\/","og_locale":"de_DE","og_type":"article","og_title":"Drucker im Griff","og_description":"Berichte drucken Kein Problem: Dialoge wie die Seiteneinstellungen und der Drucken-Dialog liefern doch alles, was das Herz an Einstellungsm&ouml;glichkeiten begehrt. Aber was, wenn Sie mal per VBA eingreifen m&ouml;chten - zum Beispiel, weil der Benutzer ganz einfach zwei Exemplare eines Dokuments mit einem Mausklick drucken m&ouml;chte Oder weil Sie zur Laufzeit die Anzahl der Spalten eines Berichts einstellen m&ouml;chten Dies l&auml;sst sich nat&uuml;rlich per VBA erledigen. Dieser Beitrag zeigt, wie es funktioniert.","og_url":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:47:45+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Drucker im Griff","datePublished":"2020-05-22T21:47:45+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/"},"wordCount":2344,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755","articleSection":["2012","4\/2012","Berichte und Reporting"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/","url":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/","name":"Drucker im Griff - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755","datePublished":"2020-05-22T21:47:45+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/63c64be340564ab9a54bd6919d73b755"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Drucker_im_Griff\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Drucker im Griff"}]},{"@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\/55000847","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=55000847"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000847\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}