Thema: Inhaltsverzeichniss in Access Bericht


Seite durchsuchen:
Home


zurück zur Übersicht

Diskussionsgruppe: Datenbanken

Hallo,

Es gibt viele Interessante Forumeinträge zum Thema Inhaltsverzeichniss in Accessberichten aber leider hat keine geholfen :(
Ich habe folgendes Problem:

Ein Bericht von mir hat einen Mehrseitigen Berichtskopf, im Detailbereich werden meine Daten aus Abfrage angezeigt, und im Berichtsfuß noch mal ein Mehrseitiger Bereich.

Nun soll ein Inhaltsverzeichnis im Berichtskopf eingebaut werden.
Meine Idee dazu:
Ich füge zu jeder "Überschrift" einen versteckten Marker (Textfeld) mit eindeutigem Namen hinzu (Kat1, Kat2,...). Als Steuerelementinhalt: =[Seite].
Dazu eine temporäre Tabelle (tblInhalt) wo der Name des Markers + die dazugehörige Seitennummer reinsoll.
Den Inhalt der Tabelle tblInhalt dann in einen extra Bericht (repInhalt) verpackt als Unterbericht in den Berichtskopf des eigentlichen Berichts
Im Bericht selber wird folgender Code ausgeführt:


Private Sub Berichtskopf_Format (Cancel As Integer, FormatCount As Integer)

Dim sqlindex
Dim ctl As Control
Dim n, a, b As String

For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
a = ctl.Name
n = Mid(a, 1, 3)
If n = "Kat" Then
b = ctl.Value
sqlindex = "INSERT INTO tblInhalt (Marker,Seite) SELECT " _
& Chr(34) & a & Chr(34) & "," & Chr(34) & b & Chr(34) & ";"
CurrentDb.Execute sqlindex, dbfailonerror
End If
End If
Next ctl
End Sub


Ich hab mir also überlegt "suche im Bericht alle Textfelder die mit Name "Kat" beginnen und schreibe den gesamten Namen und den Wert des Textfeldes in die Tabelle tblInhalt"

In der Theorie ganz nett nur in der Praxis ein wenig verzwickt, da der Code mehrere male durchläuft und somit "Kat1" mit Seite 1,2,3,... in die Tabelle schreibt.
Mir sind leider die Ideen ausgegangen und wahrscheinlich lese ich immer wieder über den sicherlich offensichtlichen Fehler drüber.
Irgend Jemand eine Idee wie ich das Lösen kann?

Besten Dank im Voraus für eure Bemühungen

Von: ThomasL. Datum: 27.04.2007, 09:53

alle Antworten zu dieser Frage




Antwort 1 von Roadrunner90 vom 23.06.2007, 14:30
Hallo,

ich definiere mir für solche Aktionen einen Merker, den setze ich nach dem 1. Durchlauf auf 1 und führe die Aufbereitung nur duche wenn Merker <> 1

Gruß Rudolf

Antwort 2 von Teddy7 vom 24.06.2007, 20:01
Wenn Du die temporäre Tabelle nur da füllst, wo die Überschrift angelistet wird, müßte es gehen.
Also z.B. Du hast Deinen Bericht gruppiert nach Artikel.
Dann hast Du einen Bereich Artikel-Kopf und Artikel-Fuß.
Im Bereich Artikel-Kopf könntest Du dann im Formatieren-Ereignis die aktuelle Seitenzahl und den Artikeltext (also die Überschrift) in die temporäre Tabelle schreiben.
Im Berichtsfuß kannst Du dann den Unterbericht im Berichtskopf aktualisieren lassen
Bericht!Berichtskopf!Unterberichtsname!requery

Gruß
Teddy

Antworten der Gruppe: Datenbanken
www.supportnet.de







Office 365 stellt vertraute Microsoft Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen.