Supportnet / Forum / Datenbanken
Suchen-Ersetzen mit SQL
Frage
Hallo,
ich möchte gerne eine Suchen-Ersetzen-Abfrage mit SQL erstellen. Und zwar möchte ich Umlaute (ä, ü, ö, ß) durch getrennte Zeichen (ae, ue, oe, ss) ersetzen. Ich weiß inzwischen, wie ich nach den Zeichen suchen kann
UPDATE tabelle SET tabelle.text ???????
WHERE (((tabelle.text) Like "*ö*"));
wie sage ich in SQL jedoch, dass er nur das "ö" durch "oe" ersetzen soll?
Danke,
Monika
Antwort 1 von *Andrea*
Hoffe du kommst damit klar...wenns Probs. gibt Mail mir einfach!
UPDATE CODES
SET LANGID=D
WHERE LANGID=E
-> Ändert einen Datensatz hier z.B. Sprachkürzel von D auf E
UPDATE CODES
SET LANGID=D
WHERE LANGID=E
-> Ändert einen Datensatz hier z.B. Sprachkürzel von D auf E
Antwort 2 von *Andrea*
Probiers doch einfach mit %
z.B. %oe%
wenns nicht klappt schreib einfach...dann guck ich mal nach!
z.B. %oe%
wenns nicht klappt schreib einfach...dann guck ich mal nach!
Antwort 3 von Mick
Hallo Monika, nur mit SQL wird es nicht klappen, da der UPDATE sich uaf das ganze Feld bezieht. Versuch es so:
Function UmlauteErsetzen()
dim SQL as string
dim RS as recordset
dim DB as database
dim i as integer
dim zstr as string
Set DB = CurrentDB()
SQL = "SELECT * FROM tabelle WHERE tabelle.text Like *ö*"
Set RS = DB.OpenRecordset(SQL)
If RS.Recordcount > 0 then
RS.Movefirst
while not RS.EOF
i=0:i=Instr(RS!text, "ö")
if i > 0 then
zstr = Rs!text
RS.Edit
RS!text = Left$(zstr,i-1) & "oe" & Mid$(zstr,i+1)
RS.Update
end if
RS.MoveNext
wend
end if
RS.close
SET RS=Nothing
Set DB = nothing
End function
Die function bildet ein recordset mit sätzen, in denen ein ö vorkommt. dann wird in dem Feld die stelle gesucht, an der das ö steht und durch ein oe ersetz. das kann man jetzt auch für andere sonderzeichen machen.
Problem: mehrere ös in einem wert.
Hoffe habe helfen können. Gruss Mick
Function UmlauteErsetzen()
dim SQL as string
dim RS as recordset
dim DB as database
dim i as integer
dim zstr as string
Set DB = CurrentDB()
SQL = "SELECT * FROM tabelle WHERE tabelle.text Like *ö*"
Set RS = DB.OpenRecordset(SQL)
If RS.Recordcount > 0 then
RS.Movefirst
while not RS.EOF
i=0:i=Instr(RS!text, "ö")
if i > 0 then
zstr = Rs!text
RS.Edit
RS!text = Left$(zstr,i-1) & "oe" & Mid$(zstr,i+1)
RS.Update
end if
RS.MoveNext
wend
end if
RS.close
SET RS=Nothing
Set DB = nothing
End function
Die function bildet ein recordset mit sätzen, in denen ein ö vorkommt. dann wird in dem Feld die stelle gesucht, an der das ö steht und durch ein oe ersetz. das kann man jetzt auch für andere sonderzeichen machen.
Problem: mehrere ös in einem wert.
Hoffe habe helfen können. Gruss Mick

