Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aktualisierungsabfrage

Begonnen von PeterW, Februar 11, 2023, 13:13:37

⏪ vorheriges - nächstes ⏩

PeterW

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: Sie dürfen in diesem Board keine Dateianhänge sehen.

Alle meine Versuche sind gescheitert, was mache ich falsch?
Viele Grüße aus Berlin
Peter

MzKlMu

#1
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?  ::)
Gruß Klaus

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

PeterW

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
Viele Grüße aus Berlin
Peter

MzKlMu

#4
Hallo,
so:
UPDATE tblMitglieder
SET NaName = Mid([GeName], InStr([GeName], " ") + 1)
    ,VoName = Left([GeName], InStr([GeName], " ") - 1)

Siehe auch Bild (Entwurfsansicht).
Tabellennamen anpassen.
Gruß Klaus

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

PeterW

#6
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
Viele Grüße aus Berlin
Peter

MzKlMu

#7
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.
Gruß Klaus