Code Erläuterung
14 Kombination der Stiftfarbe und der inversen Hintergrundfarbe (MergePenNot)
15 Kombination der Stiftfarbe und der Hintergrundfarbe (MergePen)
16 Weißer Stift
Tabelle 4.20 DrawMode-Eigenschaft (Fortsetzung)
Farbkonstanten
Konstante Wert Beschreibung
vbBlack &H0 Schwarz
vbRed &HFF Rot
vbGreen &HFF00 Grün
vbYellow &HFFFF Gelb
vbBlue &HFF0000 Blau
vbMagenta &HFF00FF Magenta
vbCyan &HFFFF00 Zyan
vbWhite &HFFFFFF Weiß
Tabelle 4.21 Farbkonstanten
Praxisbeispiele
Aufruf eines Berichts mit Datenfilter
Report-Objekt: FilterOn-Eigenschaft, Berichts-Ansicht, Layout-Ansicht, Zeilen nummerieren; DoCmd-
Objekt: OpenReport-Methode; CDate- und Format-Funktion; Select Case-Anweisung; OptionGroup-Steuer-
element; Application-Objekt: TempVars-Auflistung;
In vielen Fällen erfolgt der Aufruf eines Berichts nicht direkt, sondern aus einem vorgeschalteten Formular
heraus (über Menüleiste oder Schaltfläche). Dabei werden im Allgemeinen die für die Filterung der anzu-
zeigenden Datensätze notwendigen Parameter vorher interaktiv im Formular festgelegt.
Für den Aufruf des Berichts über die OpenReport-Methode des DoCmd-Objekts gibt es verschiedene Mög-
lichkeiten (siehe Seite 190):
DoCmd.OpenReport Berichtsname, Ansicht, Filtername, Bedingung
DoCmd.OpenReport Berichtsname, Ansicht, Filtername
DoCmd.OpenReport Berichtsname, Ansicht
Wir wollen uns hier auf die erste Variante beschränken. Als Beispiel stellen wir uns die Aufgabe, das
Anlagevermögen der Tabelle BGA unserer Beispieldatenbank für ein bestimmtes Zeitfenster aufzulisten.
225
Praxisbeispiele
Kapitel 4: Berichte
Dazu brauchen wir zwei neue Access-Objekte: Ein Formular und einen Bericht.
Oberfläche des Formulars
Da es sich um ein reines Bedienformular handelt, bleibt die Eigenschaft Datensatzquelle unbesetzt. Ver-
ändern Sie aber die Eigenschaften Datensatzmarkierer und Navigationsschaltflächen in Nein.
Beide Textfelder sind ungebunden. Rechts befindet sich eine ungebundene Optionsgruppe mit fünf Options-
feldern zur Auswahl der gewünschten Ansicht.
Abbildung 4.24 Laufzeitansicht des Testformulars
Quelltext für Formular
Zu Beginn werden standardmäßige Datumswerte eingestellt:
Private BeginnDatum As Date, EndeDatum As Date
Private Filter1 As String
Private Sub Form_Load() ' Start
BeginnDatum = Date - 365 ' vor etwa einem Jahr
EndeDatum = Date ' heute
Text1.Value = Format$(BeginnDatum, "d.m.yyyy")
Text2.Value = Format$(EndeDatum, "d.m.yyyy")
End Sub
Die Datumswerte sollen in der Report-Überschrift erscheinen und werden deshalb in der folgenden Prozedur
als globale Variablen gespeichert. Hauptaufgabe aber ist die Definition des Filters, wobei die Datumsvariablen
in »englische« Strings umformatiert werden müssen (siehe SQL-Kapitel 8):
Private Sub setFilter1() ' setzt globale Variablen und Filter
TempVars![Datum1] = Text1.Value
TempVars![Datum2] = Text2.Value
BeginnDatum = CDate(Text1.Value)
EndeDatum = CDate(Text2.Value)
Filter1 = "RDatum BETWEEN " & Format$(BeginnDatum, "\#m\/d\/yyyy\#") & _
" AND " & Format$(EndeDatum, "\#m\/d\/yyyy\#")
End Sub
Der Bericht wird nun durch Übergabe entsprechender
AcView
-Konstanten (siehe Seite 191) mit der ge-
wünschten Ansicht aufgerufen:
Private Sub Befehl1_Click() ' Bericht aufrufen
Call setFilter1
226
Select Case Rahmen1.Value
Case 1: DoCmd.OpenReport "Bericht1", acViewPreview, , Filter1 ' Seiten-Ansicht
Case 2: DoCmd.OpenReport "Bericht1", acViewReport, , Filter1 ' Report-Ansicht
Case 3: DoCmd.OpenReport "Bericht1", acViewDesign, , Filter1 ' Entwurfs-Ansicht
Case 4: DoCmd.OpenReport "Bericht1", acViewLayout, , Filter1 ' Layout-Ansicht
Case 5: DoCmd.OpenReport "Bericht1", acViewNormal, , Filter1 ' Drucken
End Select
End Sub
Oberfläche des Berichts
Öffnen Sie einen neuen Bericht in der Entwurfsansicht. Ändern Sie gleich zu Beginn die Standardeigen-
schaften des Berichts entsprechend der folgenden Abbildung:
Abbildung 4.25 Wichtige Eigenschaften des Berichts
Sind Sie mit dem Berichtsgenerator einigermaßen vertraut, dürfte es für Sie keine Hürde sein, die in der fol-
genden Abbildung gezeigte Oberfläche »zusammenzuschieben«.
Abbildung 4.26 Entwurfsansicht
des Berichts
Beachten Sie folgende Besonderheiten:
Die Überschrift ist in einem Bezeichnungsfeld untergebracht und wird durch Setzen der Caption-Eigen-
schaft erst zur Laufzeit mit den Datumsangaben komplettiert.
Um die Datensätze in der Lfd.Nr-Spalte durchzunummerieren, legen Sie die Eigenschaft Steuerelement-
inhalt des entsprechenden Textfelds auf "=1" fest und die Eigenschaft Laufende Summe auf "Über Alles".
227
Praxisbeispiele
Kapitel 4: Berichte
Quelltext des Berichts
Beim Öffnen des Berichts werden die Seitenüberschrift angepasst und das Filter eingeschaltet:
Private Sub Report_Open(Cancel As Integer)
Bezeichnungsfeld0.Caption = "Geräteliste vom " & Format$(TempVars![Datum1], "d.m.yyyy") & _
" bis " & Format$(TempVars![Datum2], "d.m.yyyy")
Me.FilterOn = True
End Sub
Test
Öffnen Sie das Formular, geben Sie ein Anfangs- und ein Enddatum ein und überzeugen Sie sich von den
Besonderheiten der verschiedenen Report-Ansichten.
Abbildung 4.27 Layout-Ansicht (links) und Preview-Ansicht des Berichts
Bemerkungen
Die Layout-Ansicht erlaubt es Ihnen, auch zur Laufzeit am Erscheinungsbild des Berichts herumzu-
doktern (Steuerelemente verschieben etc.). Dazu muss die Eigenschaft AllowLayoutView (»Layout-
ansicht zulassen«) des Reports True sein (Standard).
Die Übergabe von Datumsangaben etc. an den Report ist auch über den OpenArgs-Parameter von
DoCmd.OpenReport möglich (siehe Seite 191), sodass auf globale Variable (wie im vorliegenden Bei-
spiel) verzichtet werden kann.
Wenn Sie wollen, können Sie im OpenReport-Ereignis auch noch bestimmte Formatierungen setzen,
z.B. eine alternierende Zeilenfarbe einstellen (siehe Section-Objekt Seite 201):
Me.Section(acDetail).AlternateBackColor = vbYellow
228

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.