online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Sanne vom 03.07.2019, 17:27 Options

Access - Ausdrücke

Hab mal wieder ein Problem ;-)

Ich komm nicht klar mit den Ausdrücken, ich hoffe, Ihr könnt mir helfen!

In einem anderen Thema hat Teddy schon gut weiter geholfen mit dem Ausdruck [Firma] & " " & [Name]

Diesen Ausdruck würde ich gerne weiter ausbauen...
Er heißt bei mir erstmal [Anrede] & " " & [Nachname]

Nun möchte ich aber eine Bedingung einfügen, denn immer, wenn die Anrede "Herr" ist, soll vor dem "Herr" ein "r" und danach ein Leerzeichen stehen.
Wenn die Anrede "Frau" ist, soll zuerst ein Leerzeichen erscheinen und dann der Rest der Anrede und des Namens.
Und zu guter letzt, soll, wenn die Anrede leer ist, ein Stansardtext eingesetzt werden, nämlich "_Damen und Herren".

Ich check das nicht, wo ich eine runde oder eine eckige Klammer einfügen muss oder ein Punkt, Komma oder sonst was...

Danke schon mal im Voraus ;-)


Antwort schreiben

Antwort 1 von lleopard vom 04.07.2019, 08:49 Options

Hallo Sanne,

dat is janz einfach...

Wenn ... dann ... sonst

und man kann das sogar mehrfach verschachteln.

Also

ausgehend von:

[Anrede] & " " & [Nachname]

Wenn([Anrede]="Frau"; "Sehr geehrte Frau " & [Nachname];
wenn Bedingung ja ; dann .....................................................;

jetzt kommt der Sonst - Teil, wieder mit der Wenn-Abfrage:

wenn([Anrede]="Herr"; "Sehr geehrter Herr " & [Nachname])
wenn Bedingung ja ; dann .....................................................;

Diesen Teil beenden wir mit der Aussage nur wenn Anrede Herr dann Sehr geehrter Herr einsetzen. Deswegen die abschließende Klammer...

jetzt kommt der Sonst-Teil, Falls Anrede anders, also entweder leer oder zB Firma oä

"Sehr geehrte Damen und Herren, ")

Und die abschließende Klammer nicht vergessen... :-)

Gruß Leo

Antwort 2 von Teddy7 vom 04.07.2019, 09:21 Options

Das machst Du aber besser in einer Abfrage.

Man kann ja als Datenquelle eines Formulars oder Berichts die Tabelle, aber auch eine Abfrage nehmen.

Also macht man hier eine Abfrage über alle benötigten Felder und fügt dann eine eigene Spalte hinzu.
Dazu schreibt man in Entwurfsbild der Abfrage in die erste Zeile einer leeren Spalte z.B.:
XAnrede: Wenn([Anrede]="Frau"; "Sehr geehrte Frau ";"Sehr geehrter Herr")

wobei die Spalte Anrede natürlich in der Abfrage vorhanden sein muß.

Der gewünschte Text ist dann im Formular über den Feldnamen XAnrede abrufbar als wäre das ein Feld in der Tabelle.

Gruß
Teddy

Antwort 3 von Sanne vom 04.07.2019, 10:32 Options

Ihr seid SPITZE!!!! :-))))


lleopard, Du hast in der ersten Bedingung am Ende die abschliessende Klammer vergessen ;-))))

Ich hab meine Bedingung fast genau so aufgebaut, der Fehler war, dass ich anstelle des Semikolons ein Komma gesetzt habe, so stehts ja auch in meiner Hilfe drin! ;-((((
Aber nu isses klar!


Teddy, ich hab ja schon eine Tabelle als Datenquelle...

Ich hol mal ein wenig weiter aus:
An Firmen, die per Adress-Recherche im Internet ausfindig gemacht wurden, sollen Rundmails verschickt werden, was allerdings nur aus dem Excel geht, da das Programm für den automatischen Ablauf in Excel geschrieben wurde.
Also muss ein Teil der Datensätze (unter anderem die richtige Anrede und der Namen des Ansprechpartners) in Excel exportiert werden
Zusätzlich muss jemand dann hinterher telefonieren, das macht eine Kollegin von zu Hause aus, sie braucht dazu eine Excel-Liste mit den enstrechenden Firmendaten.
Normalerweise habe ich den Namen des Ansprechpartners, oft aber auch nicht.
Für die Rundmails brauche ich aber eine korrekte Anrede, da für diese in der Mail-Vorlage ein Platzhalter steht.
Also:
-Das Formular brauche ich zur Eingabe neuer Daten,
-eine Abfrage für die Kollegin, die ich dann exportiere und zu guter letzt
-eine Abfrage für den Versand der Rundmails...

Und Du meinst, ich solle für die Bedingung bzgl. der Anrede noch mal eine Abfrage erstellen?

Antwort 4 von Sanne vom 04.07.2019, 10:43 Options

Was issn daran jetzt falsch?

=Wenn([Anrede]="Herr";"r " & [Anrede] & " " & [Nachname])
=Wenn([Anrede]="Frau";" " & [Anrede] & " " & [Nachname])

wenn ich den Ausdrucks-Generator mit ok beende und anschliessend wieder aufrufe, steht alles direkt hintereinander... als Ergebnis seh ich ein leeres Feld!

Antwort 5 von Teddy7 vom 04.07.2019, 12:07 Options

ja meine ich !!!!



Wenn([Anrede]="Herr";"r " & [Anrede] & " " & [Nachname];Wenn([Anrede]="Frau";" " & [Anrede] & " " & [Nachname];""))

Antwort 6 von Sanne vom 04.07.2019, 12:24 Options

Hi Teddy, danke für den genauen Ausdruck!

Aber ehrlich gesagt, versteh ich ihn nicht ganz, was mach das ;"" am Ende und warum schliesst Du die Klammern erst ganz am Schluss, obwohl es ja zwei verschiedene Bedingungen sind...?

Antwort 7 von Teddy7 vom 04.07.2019, 15:29 Options

nein, es ist eine Bedingung. Das zweite wenn steht ja in der else-Bedingung des ersten wenn.

und das " " am Schluß ist die letzte else-Bedingung - d.h. wenn in Anrede weder Frau noch Herr steht, dann wird " " geschreiben. (Man könnte statt dessen auch Sehr geehrte Damen und Herren schreiben)

Achtung: wenn das Feld Anrede nicht gefüllt ist, dann funktioniert diese Abfrage nicht. Weil - wenn das Feld = NULL ist (das ist nicht das gleiche wie 0 oder wie "") dann wird der ganze Ausdruck nicht ausgeführt.

Abhilfe schafft da die nz-Funktion. Das sieht dann so aus:

nz(Anrede;"") macht aus einem NULL im Feld Anrede ein "" (also leer)

also wenn(nz(Anrede,"") = "Frau";.........usw..........

Antwort 8 von Sanne vom 04.07.2019, 15:40 Options

Uff!
Ich muss also davon ausgehen, dass pro Feld eine Bedingung zulässig ist und diese muss ich dann eben irgendwie miteinander "verschachteln"?

Ich hab das jetzt folgendermaßen gemacht:
=Wenn([Anrede]="Herr";"r " & [Anrede] & " " & [Nachname];Wenn([Anrede]="Frau";" " & [Anrede] & " " & [Nachname];Wenn(IstNull([Anrede]);" Damen und Herren")))
Es funktioniert einwandfrei... wenn das Feld Anrede leer ist, erscheint " Damen und Herren".

Antwort 9 von Sanne vom 04.07.2019, 15:41 Options

Bah, schlecht formuliert...

pro Feld eine Bedingung und wenn ich mehrere Bedingungen hab, muss ich diese miteinander kombinieren...?!

Antwort 10 von lleopard vom 05.07.2019, 09:11 Options

Hallo Sanne,

Dein Ausdruck:

=Wenn([Anrede]="Herr";"r " & [Anrede] & " " & [Nachname];Wenn([Anrede]="Frau";" " & [Anrede] & " " & [Nachname];Wenn(IstNull([Anrede]);" Damen und Herren")))

liefert zwar ein Ergebnis, aber du würdest es bestimmt verbessern, wenn du die letzte Wenn-Bedingung einfach wegläßt. Was wenn der Wert im Feld Anrede weder Frau, Herr noch Null ist, sondern vielleicht doch irgendeinen anderen Wert hat? Leerzeichen oder was auch immer... Laß das Wenn an der Stelle einfach weg, und schreibe:

=Wenn([Anrede]="Herr";"r " & [Anrede] & " " & [Nachname];Wenn([Anrede]="Frau";" " & [Anrede] & " " & [Nachname];" Damen und Herren"))


Dann erscheint immer dann, wenn Anrede <> Herr oder Frau ist immer " Damen und Herren"

Warum schreibst du da nicht gleich die komplette Zeile rein? So mußt du sie im nachhinein wieder zusammensetzen.

Gruß Leo

Antwort 11 von Sanne vom 05.07.2019, 10:22 Options

Stimmt, da hatte ich nicht dran gedacht!

Danke für den Tip ;-)))

Antwort 12 von Sanne vom 05.07.2019, 10:29 Options

Warum schreibst du da nicht gleich die komplette Zeile rein? So mußt du sie im nachhinein wieder zusammensetzen.


Meinst Du damit die komplette Anrede?

Das hat folgenden Grund: in der Rundmail, in die beim Abschicken nur noch der Name eingesetzt wird, steht vor dem entsprechenden Platzhalter "Sehr geehrte".
Wenn ich in Access die Bedingung umstellen würde, müsste ich ja auch die Rundmail ändern, aber ich hab diese Mail-Vorlage nicht selbst erstellt habe, komm ich da nicht ran!

Antwort 13 von lleopard vom 05.07.2019, 12:04 Options

Man kommt in Access, sofern es keine mde ist, immer an alles ran! ...

Aber gut. Wichtig ist ja auch nur das Ergebnis! ;-)

Antwort 14 von Sanne vom 05.07.2019, 12:16 Options

Oh, damit wäre ich vermutlich überfordert.... ;-)

Ähnliche Themen

Access schließt sich automatisch
Reozeel  22.06.2007 - 189 Hits - 6 Antworten

Access, import Access-Tabellen
KRD  02.09.2007 - 265 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026