Tipps und Tricks 3/2011

In dieser Ausgabe gibt es mal wieder ein paar Tipps und Tricks rund um die Arbeit mit Microsoft Access. Im ersten Tipp erfahren Sie, wie Sie Unterberichte in einem Bericht wahlweise ein- oder ausblenden. Der zweite Tipp verrät, wie Sie die Zusammenstellung von SQL-Ausdrücken per VBA vereinfachen. Und schließlich zeigen wir Ihnen, wie Sie XML-Dokumente auf ihre Gültigkeit hin prüfen können.

Unterberichte nach Bedarf

Unterberichte kommen immer dann zum Einsatz, wenn ein Bericht Daten aus mehreren Tabellen gleichzeitig anzeigen soll, die nicht alle hierarchisch miteinander verknüpft sind. Wenn Sie zum Beispiel alle Ansprechpartner und alle Projekte zu einem Kunden in einem Bericht anzeigen möchten, erledigen Sie dies am besten mit zwei entsprechenden Unterberichten.

Manchmal möchten Sie den Bericht aber vielleicht nicht mit allen enthaltenen Unterberichten ausgeben – etwa, weil einer der Unterberichte Informationen enthält, die Sie gerade nicht benötigen.

In diesem Fall brauchen Sie zwei Dinge: Ein Formular, mit dem Sie die gewünschten Unterberichte selektieren, und einen Bericht, der die Unterberichte entsprechend dieser Auswahl ein- oder ausblendet.

Der Bericht dieses Beispiels soll drei Unterberichte enthalten, die vor dem Öffnen über ein Formular namens frmUnterberichte aktiviert oder deaktiviert werden sollen. Dieses Formular sieht im Entwurf wie in Bild 1 aus. Die Kontrollkästchen heißen chk1, chk2 und chk3, die Schaltfläche cmdBericht. Ein Klick auf die Schaltfläche löst die folgende Ereignisprozedur aus, die schlicht den Bericht in der Seitenansicht öffnet:

pic001.png

Bild 1: Das Formular zum Aktivieren und Deaktivieren der Unterberichte

Private Sub cmdBericht_Click()
    DoCmd.OpenReport "rpt", acViewPreview
End Sub

Die Unterberichte namens srp1, srp2 und srp3 sind zu Beispielzwecken recht schlicht aufgebaut und enthalten jeweils nur ein Bezeichnungsfeld (s. Bild 2).

pic003.png

Bild 2: Einer der drei Unterberichte

Der Hauptbericht heißt rptBericht und sieht im Entwurf wie in Bild 3 aus. Dort sehen Sie drei Textfelder, welche die Überschriften der Unterberichte darstellen, dazwischen haben wir die Unterberichte eingefügt.

pic004.png

Bild 3: Der Hauptbericht mit den drei Unterberichten

Wichtig ist, dass Sie die Textfelder und die Unterberichte direkt untereinander einfügen. Wenn Sie anderenfalls zwischen jedem Steuerelement etwa einen halben Zentimeter Platz lassen und dann den mittleren Bericht ausblenden, entsteht eine unschöne Lücke.

Wenn Sie nun in die Seitenansicht wechseln, sieht der Bericht wie in Bild 4 aus – alle Überschriften und Unterberichte werden unmittelbar untereinander angezeigt.

pic002.png

Bild 4: Berichtsvorschau der Unterberichte

Genau genommen können Sie die Überschriften auch in die Unterberichte integrieren und stattdessen einfach leere Textfelder zwischen den Berichten platzieren. Die Hauptaufgabe der Textfelder ist nämlich die eines Platzhalters zwischen den Berichten.

Wie nun blenden wir die einzelnen Berichtsbereiche aus Die notwendigen Informationen hält ja das Formular frmUnterberichte bereit. Der Bericht muss diese also beim Öffnen selbst auswerten, was wie in der folgenden Prozedur geschieht:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    With Forms!frmUnterberichte
        Me!txt1.Visible = !chk1
        Me!srp1.Visible = !chk1
        Me!txt2.Visible = !chk2
        Me!srp2.Visible = !chk2
        Me!txt3.Visible = !chk3
        Me!srp3.Visible = !chk3
    End With
End Sub

Die Prozedur liest den Wert der jeweiligen Kontrollkästchen aus und trägt diesen gleich für die Visible-Eigenschaft der entsprechenden Textfeld- und Unterberichtsteuerelemente des Berichts ein.

Wenn Sie nun den zweiten Unterbericht weglassen möchten, sieht das Ergebnis wie in Bild 5 aus. Das kann noch nicht der letzte Schluss der Weisheit sein.

pic005.png

Bild 5: Der Unterbericht fehlt, aber es bleibt eine unschöne Lücke.

Zum Glück gibt es die Eigenschaft Verkleinerbar, die Sie gleich für alle sechs Steuerelemente des Beispielberichts auf Ja einstellen.

Damit sorgen Sie dafür, dass nicht sichtbare Steuerelemente auch keinen Platz in Anspruch nehmen. Das Ergebnis sieht nun wie in Bild 6 aus und entspricht genau unseren Vorstellungen.

pic006.png

Bild 6: Nun stimmt alles: Der zweite Unterbericht entfällt schlicht ersatzlos.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar