Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Prüfen, ob Feld(er) leer sind/ist und verketten

Begonnen von VIE81, Oktober 05, 2025, 21:00:49

⏪ vorheriges - nächstes ⏩

VIE81

Hallo zusammen!

Irgendwie habe ich eine Denkblockade - oder ist mein Problem vielleicht zu trivial?

Ich habe in einer Tabelle (Speichern von Personaldaten) u.a. vier Felder (alle vom Typ char, maximale Länge 255 Zeichen) zur Angabe von

  • vorangestellten akademischen Graden
  • Vorname
  • Zuname
  • nachgestellte akademische Grade

Zusätzlich habe ich ein weiteres Feld ("P_NAME_KOMB"), in dem ich - nachdem es eben mehrere Varianten der Namensdarstellung geben kann - den ggf. verketteten Namen inkl. aller evtl. akademischen Grade speichern möchte.

Beim Click-Event auf einen CmdBtn, bei dem ich den Datensatz speichere, habe ich zusätzlich folgenden Code hinterlegt, der die Inhalte des der vier (ggf. befüllten) Felder im Feld "P_NAME_KOMB" anhand der Eingaben verketten soll.

If Me![P_AKADGRAD] = "" And Me![P_AKADGRAD_NACHG] = "" Then
    Me![P_NAME_KOMB] = Me![P_VORNAME] & " " & UCase(Me![P_ZUNAME])
    ElseIf Me![P_AKADGRAD_NACHG] = "" Then
    Me![P_NAME_KOMB] = Me![P_AKADGRAD] & " " & Me![P_VORNAME] & " " & UCase(Me![P_ZUNAME])
    ElseIf Me![P_AKADGRAD] = "" Then
    Me![P_NAME_KOMB] = Me![P_VORNAME] & " " & UCase(Me![P_ZUNAME]) & ", " & Me![P_AKADGRAD_NACHG]
    Else
    Me![P_NAME_KOMB] = Me![P_AKADGRAD] & " " & Me![P_VORNAME] & " " & UCase(Me.P_ZUNAME) & ", " & Me![P_AKADGRAD_NACHG]
    End If

Wenn ich nun alle Felder mit Werten befülle - sagen wir, die Person heißt mit allen Ausprägungen "Dr. Maria MUSTERFRAU, BSc" - funktioniert das auch anstandslos.

Nun aber zu meinem Problem:

  • Wenn ich aber den Doktortitel weglasse, dann wird zwar "Maria MUSTERFRAU, BSc" hinterlegt - jedoch mit einem Leerzeichen vor dem Vornamen.
  • Wenn ich einen Doktortitel eingebe, aber den nachgestellten "BSc" weglasse, dann wird hinter dem Zunamen ein Komma und ein Leerzeichen eingefügt
  • Wenn ich den Doktortitel und den nachgestellten "BSc" weglasse, dann wird ein Leerzeichen vor dem Vornamen sowie hinter dem Zunamen ein Komma und ein Leerzeichen eingefügt

Ich bin echt ratlos - habe den Code auch schon so umgeschrieben, dass auf "NULL" geprüft wird - leider mit dem gleichen Erfolg wie oben beschrieben.

Was mache ich hier falsch?
Kann mir bitte jemand helfen?

Vielen Dank im Voraus und viele Grüße,
VIE81

Normalo0815

Hallo VIE81!

P_Name_Komb braucht nicht in der Tabelle gespeichert werden, da dieser jederzeit z. B. in einer Abfrage berechnet werden kann.

Lösche daher das Tabellenfeld P_Name_Komb in der Tabelle und erstelle stattdessen ein berechnetes Feld in der Abfrage:

P_Name_Komb: P_AKADGRAD + " " & P_VORNAME & " " & UCase(P_ZUNAME) & ", " + P_AKADGRAD_NACHG
Das berechnete Feld P_Name_Komb kann dann in Formularen und Berichten angezeigt werden, wenn die betreffende Abfrage als Datenherkunft dient.

Siehe auch:
https://www.donkarl.com?FAQ2.12
Freundliche Grüße
Normalo0815   :)

VIE81

DANKE Normalo0815!

Das habe ich mit trivial gemeint - man sieht den Wald vor lauter Bäumen nicht mehr...
Einmal mehr in meinem Leben mit der rechten Hand überm Kopf am linken Ohr gekratzt  ;D  ;D

DANKE nochmals und viele Grüße,
VIE81