Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Inhaltsverzeichniss in Access Bericht





Frage

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: [code] 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 [/code] 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

Antwort 1 von Roadrunner90

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

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