Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: PeterW am Februar 11, 2023, 13:13:37

Titel: Aktualisierungsabfrage
Beitrag von: PeterW am Februar 11, 2023, 13:13:37
Ich habe in ener Tabelle ein Feld GeName in dem Nachname und Vorname getrennt durch ein Leerzeichen sind.
Ich möcht nun mit einer Aktualisierungabfrage den Nachnamen in ein separates Feld (VoName) bringen.
Die Abfrage bringtb mir in der Zeile Aktualisierung:
left(geName, instr(GeName, " ")-1)

den Fehler: Fehler.JPG

Alle meine Versuche sind gescheitert, was mache ich falsch?
Titel: Re: Aktualisierungsabfrage
Beitrag von: MzKlMu am Februar 11, 2023, 13:48:23
Hallo,
zeige bitte die Abfrage vollständig (SQL).
Mit 317 Beiträgen solltest Du eigentlich gemerkt haben, dass solche zusammenhangslosen unvollständige Codeschnippsel ziemlich sinnlos sind.

Zitat.... den Nachnamen in ein separates Feld (VoName)
Und das Feld nennst Du dann logischerweise VoName?  ::)
Titel: Re: Aktualisierungsabfrage
Beitrag von: ebs17 am Februar 11, 2023, 13:51:02
Zitatwas mache ich falsch?
An dieser Stelle solltest Du nicht nur Geschichten über eine Abfrage erzählen, sondern dabei auch die gesamte Abfrage zeigen, idealerweise als SQL-Anweisung aus der SQL-Ansicht, und das als kopierbaren Code.

Es macht nämlich schon einen Unterschied, ob der Ausdruck sich in der Entwurfs- oder in der SQL-Ansicht befindet.
Titel: Re: Aktualisierungsabfrage
Beitrag von: PeterW am Februar 11, 2023, 14:29:32
Ihr habt ja recht, aber access läst die SQL-Ansicht nicht zu sondern verweist immer wieder aud den Fehler.
Die SQL-Ansicht ohne die Aktualisierungszeile lautet: UPDATE tblMitglieder SET;
aber ich glaube, das führt uns nicht weiter.
Der Ausdruck befindet sich in der Entwurfsansicht i der Zeile Aktualisierung
Titel: Re: Aktualisierungsabfrage
Beitrag von: MzKlMu am Februar 11, 2023, 14:38:10
Hallo,
so:
UPDATE tblMitglieder
SET NaName = Mid([GeName], InStr([GeName], " ") + 1)
    ,VoName = Left([GeName], InStr([GeName], " ") - 1)

Siehe auch Bild (Entwurfsansicht).
Tabellennamen anpassen.
Titel: Re: Aktualisierungsabfrage
Beitrag von: ebs17 am Februar 11, 2023, 14:44:31
Zitataber ich glaube
Ja, wenn man Glaube höher hält als Wissen und Fähigkeit.
Dir ist bewusst, dass in der Entwurfsansicht eingedeutschte Ausdrücke (bei deutschem Access) zu verwenden sind (Semikolon statt Komma usw.)?
Oder Du verwendest gleich die SQL-Ansicht, die spricht nur englisch und würde Deine ursprünglichen Ausdrücke verstehen und akzeptieren.
Titel: Re: Aktualisierungsabfrage
Beitrag von: PeterW am Februar 11, 2023, 18:23:00
Nach langem Probieren habe ich die richtige Syntax gefunden:
UPDATE tblMitglieder
SET tblMitglieder.NachName = Left([GeName], InStr([GeName], " ") - 1)
    ,tblMitglieder.VorName = Right([GeName], len(GeName) - InStr([GeName], " "))

So funktioniert es
Danke für eure Unterstützung
Titel: Re: Aktualisierungsabfrage
Beitrag von: MzKlMu am Februar 11, 2023, 19:26:20
Hallo,
hast Du meine Version in #4 nicht probiert ?
Der Vorname lässt sich mit Mid einfacher bestimmen. Das Len Gefummel braucht man nicht.
Also einfach so:
UPDATE tblMitglieder
SET NachName = Mid([GeName], InStr([GeName], " ") + 1)
    ,VorName = Left([GeName], InStr([GeName], " ") - 1)

Ich habe oben in Deinem Beitrag den SQL Code formatiert dargestellt. Den Tabellennamen vor den Feldnnamen kannst Du auch löschen.