Malen nach Zahlen

André Minhorst, Duisburg

Was wäre eine Rechnung ohne die Linie zur Trennung von Einzelpositionen und Rechnungssumme oder zum Unterstreichen der überschrift Oder ein optisch schöner Bericht, in dem der Briefkopf durch eine Linie vom Inhalt getrennt ist Die meisten dieser Linien können Sie statisch in den Bericht einfügen, doch mit ein wenig VBA können Sie noch wesentlich mehr für die Optik Ihrer Berichte tun. Im vorliegenden Beitrag erfahren Sie, wie es geht.

Die nachfolgenden Beispiele für die optische Aufbereitung von Berichten basieren alle auf der Anwendung der Line-Methode von VBA. Um nachfolgende Unklarheiten bezüglich der Anwendung dieser Methode im Voraus zu beiseitigen, erfahren Sie erst einmal alles über das einzige Werkzeug, mit dem Sie Ihre künstlerische Ader in Access ausleben können (mit Ausnahme der Circle-Methode).

Die Line-Methode kann mehr, als der Name verrät: Mit ihr können Sie nämlich nicht nur Linien, sondern auch Rechtecke in einen Bericht zaubern. Das Ganze funkioniert nur in den Prozeduren, die durch die Ereigniseigenschaft Beim Drucken der verschiedenen Berichtsbereiche ausgelöst wird. Eine Ausnahme bildet die Bei Seite-Ereigniseigenschaft, die man auch zum Zeichnen von Linien und Rechtecken verwenden kann.

Um vernünftig mit der Line-Methode arbeiten zu können, legen Sie erstmal die Maßeinheit für den Bericht fest. Dazu stellen Sie den Wert der Eigenschaft ScaleMode ein – in Deutschland kommt hier vermutlich der Wert 6 (Millimeter) oder 7 (Zentimeter) zum Einsatz. Es stehen auch Werte wie Twips, Punkte oder Pixel zur Verfügung, die aber in diesem Fall eher unhandlich sind. Wenn Sie ohnehin nur die Eigenschaften wie Koordinaten von Berichtsbereichen oder Steuerelementen als Grundlage für das Zeichnen von Linien und Rechtecken verwenden, können Sie die Eigenschaft ScaleMode unberührt lassen. Ebenfalls interessant sind die vier Eigenschaften ScaleTop, ScaleLeft, ScaleHeight und ScaleWidth, die der Ausgabe der Koordinaten und der Abmessungen der einzelnen Bereiche dienen. Die folgende Prozedur, die Sie für die Ereigniseigenschaft Bei Seite hinterlegen, gibt beispielsweise die kompletten Maße einer Seite aus:

Private Sub Report_Page()
  Me.ScaleMode = 7
  Debug.Print "Left: " & Me.ScaleLeft
  Debug.Print "Top: " & Me.ScaleTop
  Debug.Print "Width: " & Me.ScaleWidth
  Debug.Print "Height: " & Me.ScaleHeight
End Sub

Für einen jungfräulichen Bericht zeigt die Prozedur Folgendes im Testfenster an:

Left: 0
Top: 0
Width: 15,86796
Height: 24,56394

Die Paramter der Line-Methode können auf unterschiedliche Art übergeben werden. Im nachfolgenden Beitrag kommt die folgende zum Zuge:

object.Line [[Step](x1, y1)] - [Step](x2, y2)[, [color][, B[F]]]

Dabei geben x1 und y1 den Startpunkt der Linie beziehungsweise den ersten Eckpunkt des Rechtecks an. x2 und y2 enthalten die Koordinate des Endpunktes der Linie beziehungsweise des gegenüberliegenden Punktes des Rechtecks. Unter Farbe geben Sie eine unter Access übliche Farbkonstante an und für Konstante geben Sie entweder keinen Wert für eine Linie oder den Buchstaben B für ein Rechteck an. Zusätzlich können Sie den Parameter B zu BF ergänzen, um ein gefülltes Rechteck anzuzeigen. Wenn Sie den Parameter Step verwenden, werden die Parameter x1, y1, x2 und y2 relativ zu dem Punkt ermittelt, der durch die Eigenschaften CurrentX und CurrentY des jeweiligen Bereichs angegeben ist.

Hinweis

Versuchen Sie es nicht mit der in der Online-Hilfe neuerer Access-Versionen angegebenen Fassung der Line-Methode. Sie ist schlichtweg falsch.

Ein einfaches Beispiel zum Start ist das Einrahmen einer kompletten Berichtsseite inklusive Berichtskopf und -fuß. Diese Aufgabe handeln Sie in einer einzigen Zeile ab, indem Sie die Eigenschaften ScaleTop, ScaleLeft, ScaleHeight und ScaleWidth in die Line-Methode einfließen lassen.

Eigentlich sollte die folgende Anweisung in der Ereignisprozedur Bei Seite des Berichts alles Notwendige erledigen und beispielsweise einen roten Rahmen um den Bericht legen:

Me.Line (Me.ScaleLeft, Me.ScaleTop)-(Me.ScaleWidth, Me.ScaleHeight), &HFF, B

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar