window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Zeilenvorschub in Berichten steuern

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Es gibt einige Möglichkeiten, den Zeilenvorschub bei der Ausgabe in Berichten zu steuern. Dazu gehört die Eigenschaft MoveLayout, die Sie in entsprechenden Ereignissen eines Berichts setzen können, um die Ausgabe des Detailbereichs zu steuern. Ein schönes Beispiel dazu ist die Ausgabe eines Monatskalenders, bei dem jeweils eine Zeile eine Woche abbildet und jede neue Woche in einer weiteren Zeile beginnt.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1706_BerichtsausgabeSteuern.accdb.

Vorbereitungen

Als Beispiel für die Eigenschaften eines Berichts, um mehrere Datensätze in einer Zeile anzuzeigen oder einen Zeilenvorschub zu bewirken, verwenden wir eine Tabelle namens tblDatumswerte. Diese soll im Feld Datumswert einige hundert Datumswerte enthalten, mit denen wir im Bericht komfortabel experimentieren können. Der Entwurf dieser Tabelle ist einfach gehalten und umfasst neben dem obligatorischen (und hier noch nicht einmal nötigen) Primärschlüsselfeld noch das Feld Datumswert (siehe Bild 1).

Entwurf der Datumstabelle

Bild 1: Entwurf der Datumstabelle

Diese Tabelle füllen wir mit der Prozedur DatumsangabenSchreiben, welche Sie im Modul mdlTools der Beispieldatenbank finden. Die Prozedur sieht wie in Listing 1 aus und durchläuft eine Schleife, in der jeweils ein Datensatz zur Tabelle hinzugefügt wird, bis 1.001 Datumsangaben in der Tabelle liegen. Die Schleife läuft über eine Datumsvariable namens datCurrent, der Startwert ist der 1.1.2017, der Endwert ist dieses Datum plus 1.000.

Public Sub DatumsangabenSchreiben()
     Dim db As DAO.Database
     Dim datCurrent As Date
     Dim datStart As Date
     Set db = CurrentDb
     datStart = "1.1.2017"
     db.Execute "DELETE * FROM tblDatumswerte", dbFailOnError
     For datCurrent = datStart To datStart + 1000
         db.Execute "INSERT INTO tblDatumswerte(Datumswert) VALUES(" & Format(datCurrent, "\#yyyy\-mm\-dd\#") & ")", dbFailOnError
     Next datCurrent
End Sub

Listing 1: Füllt die Tabelle tblDatumswerte mit 1.000 Datensätzen

Das Ergebnis sieht in der Tabelle wie in Bild 2 aus.

Gefüllte Datumstabelle

Bild 2: Gefüllte Datumstabelle

Datum im Bericht

Nun wollen wir den Bericht erstellen, für den wir vorerst die folgende Vorgabe festlegen wollen: Er soll in einer Zeile sieben Datumsangaben anzeigen und dann in der nächsten Zeile mit den Datumsangaben fortfahren. Um die Wochentage et cetera kümmern wir uns vorerst nicht.

Als Erstes legen wir einen neuen Bericht namens rptKalender an, dem wir als Datenherkunft die Tabelle tblDatumswerte hinzufügen. Dann ziehen Sie das Feld Datumswert aus der Feldliste in den Detailbereich des Berichtsentwurfs und entfernen das Bezeichnungsfeld dieses Steuerelements. Schieben Sie das Steuer-element dann nach ganz links oben. ändern Sie seine Größe so, dass es sieben Mal nebeneinander in den Bericht passt (siehe Bild 3).

Einfügen des Feldes zur Anzeige des Datums

Bild 3: Einfügen des Feldes zur Anzeige des Datums

Wenn Sie den Bericht nun in der Seitenansicht öffnen, werden die Datumswerte natürlich alle untereinander angezeigt (siehe Bild 4). Bevor wir dafür sorgen, dass sieben Datensätze je Zeile angezeigt werden, entfernen wir noch die alternierenden Hintergrundfarben und die Textrahmen. Stellen Sie dazu für den Detailbereich die Eigenschaft Alternative Hintergrundfarbe auf den gleichen Wert ein wie die Eigenschaft Hintergrundfarbe sowie die Eigenschaft Rahmenart des Textfeldes auf den Wert Transparent.

Bericht in der herkömmlichen Ansicht mit einem Datensatz je Zeile

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

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar