Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: goetz am Juli 16, 2013, 15:34:09

Titel: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 15:34:09
Hallo,

ich möchte gerne Fußnotten in Access realisieren.
Wenn man eine Tabelle hat, in der sich lediglich ein Textfeld befindet und man in diesem Textfeld eine Fußnote dadurch addressiert, dass man z.B. in den Text ein " (F das hier ist der Text der Fußnote) " setzt, wobei die einleitende Begrenzung " (F " ist und die beendende ")". Es ist kein Problem mittels VBA diese Marke zu identifizieren und den zwischen den begrenzern befindlichen Text in einern String zu speichern.

Mein Problem ist aber:
Wie kann ich diese Strings pro Report-Page im Page-Footer ausgeben, so dass NUR die Strings (fußnoten) ausgegeben werden, die sich tatsächlich auf dieser Seite befunden haben? Ich möchte ja die Fußnoten Seitenweise ausgeben und nicht am Ende des Reports....

Hat jemand eine Idee?

Tausend dank!
Titel: Re: Fußnoten in Access
Beitrag von: MzKlMu am Juli 16, 2013, 15:40:58
Hallo,
hast Du nur Fußnoten für ein Feld?
Oder können mehrere Felder Fußnoten haben?
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 15:45:54
Das könnte auch in mehren Felder vorkommen.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 15:49:13
Aber in abzählbar vielen. Also, z.B. in drei verschiedenen Feldern. Nicht in allen.
Titel: Re: Fußnoten in Access
Beitrag von: MzKlMu am Juli 16, 2013, 15:50:09
Hallo,
und wie dann ausgeben im Seitenfuß, auch feldbezogen oder haben die Fußnoten eine feldbezogene Nummer.

Das mit dem F finde ich prinzipiell keine gute Idee. Die Fußnoten gehören in eine Tabelle mit einem Fremdschlüssel als Bezug.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 15:58:18
- Fußnoten sollten eine in einer Konfig-Tabelle vorgegebene Start-Nummer haben und sich dann entsprechend hochzählen (kein Problem).
- Im Seitenfuß könnten die Fußnoten in einem Textfeld übereinander ausgegeben werden (ggf. auch kein Problem).

Und ja, ich gebe Dir Recht: Gefühlt müssen die Fußnoten als Tabelle angelegt werden.

- Das Problem dabei ist aber, dass ich nicht weiß, wie dann die Referenzierung innerhalb des Fließtextes stattfinden soll. Die Fußnote muss ja an einen bestimmten Punkt innerhalb des Textes und sich nicht auf das Textfeld im Ganzen beziehen.
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 16, 2013, 16:19:47
Hallo,

ZitatDie Fußnote muss ja an einen bestimmten Punkt innerhalb des Textes und sich nicht auf das Textfeld im Ganzen beziehen

Naja, Access ist aber auch keine Textverarbeitung wie Word ...
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 16:23:44
Das weiß ich. Ich weiß auch, wie ich mit LaTeX, Word, InDesign, 3B2, LibreOffice, QuarkXPress, Pagemaker, DocBook usw usf Fußnoten setzen könnte, aber es muss halt mit Access sein. Nicht optional.
Titel: Re: Fußnoten in Access
Beitrag von: MzKlMu am Juli 16, 2013, 16:32:56
Hallo,
lege die Fußnote als Zahl im Fließtext an.
Z.B. so:
aaaaaaaaaaaaaaaaa {1.)} bbbbbbbbbbbbbbbb

In der Tabelle für die Fußnote benötigst Du dann einen Fremdschlüssel zum Hauptdatensatz und die Zahl vor der runden Klammer als Schlüsselzahl.

Wie man das Ganze jetzt aber im Seitenfuß seitenbezogen ausgeben könnte habe ich keine Idee.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 16:36:20
Das ist leider genau der Knackpunkt :-(
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 16, 2013, 16:57:28
Hi,

ZitatDas weiß ich. Ich weiß auch, wie ich ...
Ich wollte mit meiner Äußerung ja nicht unbedingt auf deinem Schlips herumsteigen.
Manche wollen auch mit einem Fiat 600 ein Formel 1 - Rennen mitfahren - sie denken aber dann ganz anders, wenn sie in der 3. Kurve von den Jungs zum ersten Mal überrundet werden  ;D ::)

ZitatWie man das Ganze jetzt aber im Seitenfuß seitenbezogen ausgeben könnte
Nur mal so eine Idee...
Das Ereignis - 'Beim Formatieren' des Seitenfußes wird ja bei jeder Seite ausgeführt.
Ev. könnte von da aus das Textfeld darüber - also im Detailbereich noch angesprochen werden und so der Inhalt wie bereits erwähnt
ZitatEs ist kein Problem mittels VBA diese Marke zu identifizieren und den zwischen den begrenzern befindlichen Text in einern String zu speichern.
analysiert und ausgewertet werden.
Wenn das möglich ist, könnte die Referenz, die sich ja in einer Tabelle befindet auch ausgelesen und in ein Textfeld oder Memofeld im Seitenfuß eingefügt werden.
Im Prinzip sollte es gehen, da sich ja auch Zwischensummen und Überträge auf die Weise erstellen und ausgeben lassen und die beziehen sich ja auch immer auf eine Seite.
Fraglich ist nur ob eine so umfangreiche Aktion - und die wird es zweifelsfrei sein - im Format-Ereignis überhaupt fehlerfrei durchläuft.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 17:03:44
Hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm.......

Vorerst der emotionale Quark: Ich gehe völlig emotionsfrei in so eine Diskussion, fühlte mich also auch nicht auf den Schlipps getreten, ich wollte nur erreichen, dass keine Off-Topic-Texte entstehen und hatte "Angst", dass eben dies passiert ;-)

Deine Idee ist ziemlich gut. Überhaupt wusste ich garnicht, dass "beim Formatieren" geschieht, sobald EINE Seite formatiert wird. Interessant in diesem Zusammenhang fand ich auch das "Bei Seite"-Event. Überhaupt vermisse ich so ein schönes DOM in VBA für einen fertigen Report. Oder ich bin einfach nur zu beschränkt, es zu sehen.
Ich komme jedoch von der Java/C++-Seite her und bin nicht so firm in VBA, als dass ich das nun "mal eben" implementieren könnte, wie ich zu meiner Schande gestehen muss. Aber ich werde mir auf jeden Fall Mühe geben. Danke vorerst.
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 16, 2013, 17:10:12
Hi,

alles klar ...

Zitatdass keine Off-Topic-Texte entstehen und hatte "Angst", dass eben dies passiert ;-)
;D bei meiner Anzahl von Beiträgen ist die Gefahr relativ gering ... aber ein bisschen Unterhaltung schadet ja auch nicht  ::)

Sieh mal hier...
http://www.donkarl.com?FAQ5.7 (http://www.donkarl.com?FAQ5.7)
Demnach müssen ja die Daten beim Formatieren des Seitenfußes ja bereits im Textfeld 'bekannt' sein - das war meine Überlegung dabei.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 17:24:13
Ja, ich sehe das ein, muss mir nur mal Gedanken darüber machen, wie man sowas in VBA nun realisiert.

Im Grunde ist es doch nun egal, ob ich die Fußnoten in einer Tabelle ablege, oder nicht... oder?
Denn:
Wenn ich in dem Fließtext eine Fußnote markiere, z.B. durch "(F das hier ist die fußnote)" (mir fällt halt nichts "besseres" ein.), dann wäre es doch schöner, wenn eine globale Variable hochzählt, die als Startpunkt eine von mir vorgegebene INT hat. Wenn ich nun das Textfeld auf dem Seitenfuß um die obige Fußnote inkl. Nummer erweitere.
Dadurch spare ich mir eine Tabelle, ebenso die Verknüpfung.Außerdem bin ich durch die ganze Aktion eh schon aus der "Schön in Access gemacht"-Nummer raus und in einer "gefrickelt bis zum Anschlag"-Geschichte drin =/

In diesem Zusammenhang könnte das "bei Seite"-Event wertvoll sein, denn dies feuert erst, wenn tatsächlich der Report als Dokument gerendert wurde, also die Seitenzahlen und Umbrüche klar sind. Das ist wohl erst der Fall, wenn das Dokument zu einem Drucker geschickt wird. Ahh... die Access-Untiefen...
Titel: Re: Fußnoten in Access
Beitrag von: MzKlMu am Juli 16, 2013, 17:38:28
Hallo,
ZitatDadurch spare ich mir eine Tabelle, ebenso die Verknüpfung.
es ist der falsch Ansatz in einer Datenbank Tabellen und Beziehungen sparen zu wollen. Eine Datenbank lässt sich nur sinnvoll über Tabellen und unerlässliche Beziehungen aufbauen.
Daher: Die Fußnoten gehören in eine Extra Tabelle, alles andere halte ich für falsch. Ich bin auch überzeugt davon, das eigentliche Vorhaben lässt sich mit einer extra Tabelle einfacher realisieren.
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 16, 2013, 17:52:16
Hmm....

na wenn schon dann ordentlich bis zum Anschlag  :D ;D

Bei Seite ... ich kann es nicht definitiv ausschließen aber fürchte fast, dass es hierbei schon 'zu spät' ist, fürchte, dass zu dem Zeitpunkt keine Änderung an Steuerelementen mehr möglich ist, da der Bericht ja schon 'druckfertig' erstellt ist.

ZitatDadurch spare ich mir eine Tabelle, ebenso die Verknüpfung
Sparen ist ja das Unwort dieses Jahrhunderts ...

Woher bekommst du dann den Text der zur Fußnote gehört, wenn diese nicht in einer Tabelle gespeichert sind?

Zitatmir fällt halt nichts "besseres" ein
Was spricht gegen den Vorschlag von MzKlMu  ....  {1} ?
und in der Tabelle hast du 2 Felder (ein Zahlenfeld und ein Textfeld)
1   Erster Fußnotentext
2   Zweiter Fußnotentext

triffst du beim Durchlaufen des Textes auf eine Fußnote liest du die Zahl zwischen den {} in eine Variable und krallst dir den Text aus der Tabelle

z.B. mit DLookup("Textfeld","DeineTabelle","Zahlenfeld=" & Variable)
Das Ganze legst du in einer Stringvariablen in der Schreibweise ab Zahl ; Text ; Zahl ; Text ; usw.
Im Seitenfuß führst du ein Listenfeld mit 2 Spalten und dem weist du den Inhalt zu.
Das Listenfeld stellst du so ein, dass der Herkunftstyp der Datenherkunft Werteliste ist.

Mal sehen und gutes Gelingen



Titel: Re: Fußnoten in Access
Beitrag von: MzKlMu am Juli 16, 2013, 18:10:28
Hallo,
Zitatund in der Tabelle hast du 2 Felder (ein Zahlenfeld und ein Textfeld)
wahrscheinlich 2 Zahlenfelder, weil ja auch ein Bezug zum Hauptdatensatz gespeichert werden muss.
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 16, 2013, 18:39:43
Hallo,

2 Zahlenfelder ja, stimmt - wegen dem Bezug zum Hauptdatensatz - DANKE

demnach dann auch:

DLookup("Textfeld","DeineTabelle","Zahlenfeld=" & Variable & " AND Fremdschluesselfeld=" & Me.ID)
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 16, 2013, 22:45:56
Na, dann werde ich das mal angehen. Vielen Dank bis hierher und ich werde mich melden, sobald ich etwas brauchbares zu Stande bekommen habe.

Danke für eure Hilfe!
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 17, 2013, 12:07:40
Also, es ist alles leider ein bisschen anders, und zwar wie folgt:

Unabhängig vom seitenbasierten- oder fortlaufenden Layout komme ich nicht darum herum, mich an die ODA-Prinzipien für Dokumente zu halten.
Logical layer:
Der Textkörper muss als composite logical object behandelt werden. An ihm baumeln dann die einzelnen Textpartikel. An den Textpartikeln hängen dann zum einen eine oder mehrere Fußnoten und zum anderen halt die content potion (der eigentliche text).

layout layer:
Im Dokument müssen dann die Textpartikel zusammenhängend formatiert werden, wie eine Perlenschnur. Hängt an dem Textpartikel eine Fußnote, muss sie entsprechend formatiert werden (unterhalb des Dokument-Körpers, sprich: an den Seitenfuß, im Falle des seitenbasierten Layouts).
Dieses Prinzip lässt sich wunderbar auf Access anwenden (zum glück). Stay tuned.
Titel: Re: Fußnoten in Access
Beitrag von: goetz am Juli 17, 2013, 16:19:06
Kurze Zwischenfragen:

Wie kann ich einem Textfeld in einem Bericht den Wert zuordnen, wie oft dieses Textfeld (bis zu DIESEM textfeld) erzeugt wurde?

Wie kann ich zB in einer Abfrage alle Werte einer Abfragenspalte in einer Zelle hintereinander ausgeben lassen?
Titel: Re: Fußnoten in Access
Beitrag von: database am Juli 17, 2013, 20:34:48
Hallo,

zu 1

Ich gehe davon aus, dass die Datenherkunft deines Berichts eine Abfrage sein wird.
Weiter nehme ich an, dass das Textfeld auf jeder Berichtsseite im Detailbereich erscheint.
Hier kann u.U. der folgende FAQ-Artikel hilfreich sein:
http://www.donkarl.com?FAQ3.11 (http://www.donkarl.com?FAQ3.11)

zu 2

spontan würde ich sagen, dass du mit Hilfe der Abfrage ein Recordset erstellst und dieses
mittels einer Schleife durchläufst und die Werte aus der benötigten Spalte in eine String-Variable einliest.

eine weitere Möglichkeit ist es in der Abfrage eine neue Spalte zu erstellen und diese durch

NeuSpalte: [Spalte1] & " " & [Spalte2] & " " & [Spalte3] & " " & [Spaltexy]

mit den Werten der gewünschten, bestimmten Spalten zu befüllen. (Die Leerzeichen sind hier nur exemplarisch eingefügt)

Je nachdem was du mit den zusammengefügten Daten halt machen willst.