Wert aus String in Tabellenfeld per SQL (VBA) löschen

23/05/2009 - 11:16 von Joerg M. | Report spam
Hi NG,

ich habe eine Tabelle tblAnwendung mit u.a. einer Spalte strBerechtigungen.
In der stehen verschiedene Werte, z.B. wie folgt:

000100; 000500; 001000; 008123; 000950
oder
000100; 000500;
oder
000500;
oder
000100; 001234; 000500; 008796
oder


Die einzelnen Werte sind immer mit ";" abgetrennt, es können maximal fünf
Werte drin stehen, aber auch weniger, auch mal kein Wert.

Jetzt möchte ich mit einem SQL aus VBA heraus aus allen Datensàtzen die
000500; löschen. Aber natürlich kann es auch dazu kommen, dass ich die 008123
löschen will oder einen anderen Wert. Das heißt, der zu lsöchende Wert muss
variabel sein. Ich hab mir das in der Endanwendung dann so vorgestellt, dass
der Anwender den zu löschenden Wert in einem DropDown in einem Formular
auswàhlt und so der Wert dann im SQL variabel genutzt wird.

Der zu löschende Wert kann, wie man an den Beispielen sieht, an
unterschiedlichen Stellen im string stehen, also zu Beginn, am Ende oder als
einer der Mittelwerte.

Das müsste ja eigentlich mit einer Update SQL gehen, oder?

Jemand ne Idee, wie ich den String aufbaue?

Danke, Gruß Jörg
 

Lesen sie die antworten

#1 Stefan Hoffmann
23/05/2009 - 11:26 | Warnen spam
hallo Jörg,

Joerg M. wrote:
ich habe eine Tabelle tblAnwendung mit u.a. einer Spalte strBerechtigungen.
In der stehen verschiedene Werte, z.B. wie folgt:

000100; 000500; 001000; 008123; 000950
oder
000100; 000500;


Hier ist Normalisierung dringend angeraten, man speichert Werte
möglichst atomar (1NF). Das würde dein Problem auch elegant lösen.

Jetzt möchte ich mit einem SQL aus VBA heraus aus allen Datensàtzen die
000500; löschen.


Ansonsten:

UPDATE unnormalizedTable
SET evilField = Replace(evilField, "000500;", "")


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen