Neuigkeiten:

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

Mobiles Hauptmenü

Aktualisierungsabfrage nur am Anfang des Feldinhaltes

Begonnen von Scholar, Januar 17, 2014, 11:35:03

⏪ vorheriges - nächstes ⏩

Scholar

Hallo!

Ich habe eine Aktualisierungsabfrage erstellt, die Werte in der einen Tabelle mit denen aus einer anderen Tabelle ersetzt. Das klappt auch ganz wunderbar. Ich möcht nun aber, dass er nicht das ganze Feld durchsucht, sondern nur den Anfang des Feldinhaltes.

Derzeit sieht es so aus: UPDATE GrundlageErsetzenOrt SET GrundlageErsetzenOrt.Ausstellungsort = Replace(Ausstellungsort,[OrtQuellenbegriff],[Code6]);

Vielen Dank!

Hondo

Hallo,
mit der Funktion Left() kannst du nur die ersten X Zeichen von AusstellungsOrt ersetzen und mit right() bzw. mid() den rest anhängen:
UPDATE GrundlageErsetzenOrt SET Ausstellungsort = Replace(Left(Ausstellungsort,5), [OrtQuellenbegriff],[Code6]) & mid(Ausstellungsort,6);

Hier am Beispiel werden nur die ersten 5 Zeichen ersetzt, und ab der 6. Stelle die Zeichen unverändert wieder angehängt.

Gruß Andreas

Scholar

Hey!

Danke für die Antwort! Allerdings ist dies nicht die Lösung, die ich suche, da die Anzahl der Zeichen unterschiedlich sein kann.

Um das vielleicht mal an einem Beispiel zu erläutern. Er soll in einer Spalte suchen, wann Köln am Anfang (!) des Feldinhaltes steht, ggf. ersetzen, dann nach Frankfurt suchen, ggf. ersetzen ...

Wenn ich das ganz normale Suchfeld in einem Formular öffne, dann gibt es doch auch die Funktion (Anfang des Feldinhaltes); kann man dies nicht in SQL übersetzen?

Hondo

Hallo,
einfacher geht das mit VBA.
Dort in einer Schleife über alle Datensätze eines Recordsets den Feldinhalt untersuchen und mit replace ersetzten.
Mit rs.edit und rs.update Anderungen zurückschreiben.

Gruß Andreas