Access Bericht erstellen

Hallo Leute,
ich möchte einen Brief aus meiner Suchabfrage erstellen und habe dazu einen Bericht erstellt. In diesem Bericht sind nun die Textfelder mit z.B. der Anrede, dem Namen, der Anschrift usw. zu füllen. Wenn in einem der Felder kein Eintrag ist, soll das nächste Feld aufrücken.
Von einem Kollegen habe ich die folgende Formel bekommen, die ich aber erlich gesagt nicht verstanden habe. Ich möchte nun von Euch wissen, was genau in dieser Formel die Tabelle oder Abfrage und was genau die Spalte bezeichnet. Kann da jemand mal draufschauen ?

Gruß Christian

=Wenn(Glätten("" & [V-Anrede])="";"";[V-Anrede] & Zchn(13)+Zchn(10)) & Wenn(Glätten("" & [V-Name1])="";"";[V-Name1] & Zchn(13)+Zchn(10)) & Wenn(Glätten("" & [V-Name2])="";"";[V-Name2] & Zchn(13)+Zchn(10)) & Wenn(Glätten("" & [V-Name3])="";"";[V-Name3] & Zchn(13)+Zchn(10)) & Wenn(Glätten("" & [V-Zusatz])="";"";[V-Zusatz] & Zchn(13)+Zchn(10)) & Wenn(Glätten("" & [V-Straße])="";"";[V-Straße]) & Zchn(13)+Zchn(10) & Wenn(Glätten("" & [V-Ort])="";"";[V-Ort])

Moin, Christian,

Glätten heißt Leerzeichen rausschmeißen. Sodann erst mal nur einen:

=Wenn(Glätten("" & [V-Anrede])="";"";[V-Anrede] & Zchn(13)+Zchn(10))
& …

 Wenn Leerstring verkettet mit der Anrede leer ist, 
 dann Ergebnis = leer
 sonst Ergebnis = Anrede verkettet mit CRLF 

Anschließend geht’s munter mit den restlichen Werten weiter, wobei anstelle des Leerstrings das bisherige Ergebnis (kann immer noch leer sein) tritt.

Gruß Ralf

OT

=Wenn(Glätten("" & [V-Anrede])="";"";[V-Anrede] & Zchn(13)+Zchn(10))

Hallo Ralf,

reicht dies bei Access nicht:

=Wenn(Glätten([V-Anrede])="";"";[V-Anrede] & Zchn(13)+Zchn(10))

@Anfrager, da ist keine PLZ in der Formel, ist das okay?

Gruß
Reinhard

Hallo Ralf mal wieder,

klappt prima. Aber kann ich einen Bericht auch aus einem Unterformular speisen ? - Ich hab da eine Suchabfrage, die den gesuchten Kunden in einem Unterformular anzeigt. Wenn ich nun diese Kundendaten in den Bericht einsetzen lassen möchte, müßte ich die Datensatzherkunft für den Bericht auf das Unterformular UF1 setzen. Dort werden aber nur Tabellen und Abfragen angeboten. Muß ich nun eine extra Abfrage erstellen oder kann ich das auch umgehen ?

Christian

Moin, Reinhard,

=Wenn(Glätten("" & [V-Anrede])="";"";[V-Anrede] & Zchn(13)+Zchn(10))

Hallo Ralf,

reicht dies bei Access nicht:

=Wenn(Glätten([V-Anrede])="";"";[V-Anrede] &
Zchn(13)+Zchn(10))

wahrscheinlich reicht das. Vermutung (bin zu faul, das zu verifizieren): Ohne den vorgestellten Leerstring könnte ein Fehler auftreten, wenn V-Anrede NULL ist, mit ihm wird die Abfrage auf NULL umschifft.

Gruß Ralf

Moin, Christian,

Dort werden aber nur Tabellen und Abfragen angeboten.
Muß ich nun eine extra Abfrage erstellen

offensichtlich - ich hab noch nie probiert, einen Bericht auf Form oder Subform aufzusetzen.

Das Problem dürfte sein, dass das Ufo vom Form abhängt, da würde für den Bericht die Eingrenzung auf die Führungsgröße fehlen.

Gruß Ralf

Hallo Christian,

Aber kann ich einen Bericht auch aus einem
Unterformular speisen ?

nein

Ich hab da eine Suchabfrage, die den
gesuchten Kunden in einem Unterformular anzeigt. Wenn ich nun
diese Kundendaten in den Bericht einsetzen lassen möchte,
müßte ich die Datensatzherkunft für den Bericht auf das
Unterformular UF1 setzen.

nein, du musst nur die ID des UFOs an den Bericht übergeben

Abfragen angeboten. Muß ich nun eine extra Abfrage erstellen
oder kann ich das auch umgehen ?

  • der Bericht hat eine Datenherkunft (Tabelle oder Abfrage?)
  • der Bericht wird per Taste aufgerufen?

dann schau dir mal DOCMD.Openreport genau an

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Dank Dir wiedermal vielmals !

Ne andere Idee als über einen SUB Word aufzurufen, ein Muster mit Textmarken zu befüllen und auszudrucken ?

Christian

Hi Christian,

immoment weiß ich nicht, wo es Dich zwickt. Ein Bericht hat doch immer eine Tabelle oder ein Abfrage als Grundlage.

Ne andere Idee als über einen SUB Word aufzurufen, ein Muster
mit Textmarken zu befüllen und auszudrucken ?

Ergebnis als Tabelle speichern und den Bericht daraufsetzen.

Gruß Ralf

Hallo Ralf,
habe das Problemchen soweit gelöst, dass ein Berict erstellt wird.
Jetzt tut sich nur noch ein Problemchen auf.
Ich muss den richtigen Bericht in die Voransicht bekommen.

Mein Bericht trägt den Namen Eingangsbestätigung.
Ich möchte aus meinem Formular eine Schaltfläche Empfangsbestätigung genau den Bericht aufrufen, wo der String Depotnummer im Formular mit der Depotnummer auf dem Bericht übereinstimmt.

Mit dem folgenden Sub funktioniert das noch nicht so ganz.

Die Meldung des Debuggers ist:" Laufzeitfehler 2497 -Für diese Aktion bzw. Methode muss das Argument ‚Berichtsname‘ angegeben werden "

(der Debugger markiert die DoCmd.OpenReport… -Zeile)

Private Sub Empfangsbestätigung_Click()

stLinkCriteria = „[Depotnummer]“ & strIDNr

stDocName = „Eingangsbestätigung“

DoCmd.OpenReport Eingangsbestätigung, acViewPreview

End Sub

Findet das Makro den Bericht nicht, oder woran kann es noch liegen ?

Gruß Christian