Hallo,
ich möchte verhindern das Zeichen in mitten eines Wortes verändert werden.
Die Zeichen sollen nur am Ende ersetzt werden.
Dafür habe ich mir folgendes ausgedacht ...
"UPDATE tabverben SET tabverben.YO = substr(tabverben.Yo, 1, length(tabverben.yo)-2)Replace([tabverben].[yo],'ar','o') WHERE substr(tabverben.YO,-2) = 'AR' and check_konj = 0;"
Allerdings bekomme ich die FM fehlender Operator.
Wo habe ich was vergessen ??
Gruß
Uwe
Zitat von: Uwe_Noob am April 16, 2020, 10:56:27
"UPDATE tabverben SET tabverben.YO = substr(tabverben.Yo, 1, length(tabverben.yo)-2)Replace([tabverben].[yo],'ar','o') WHERE substr(tabverben.YO,-2) = 'AR' and check_konj = 0;"
substr und
length sind keine eingebauten Funktionen in Access/JET/VBA. ->
Mid +
LenDavon abgesehen, fehlt zwischen den beiden Funktionsaufrufen von
substr und
Replace tatsächlich ein Operator. - Mir ist aber der Sinn der ganzen Aktion auch mit deiner Beschreibung nicht wirklich klar.
Ok, dann versuch ich das mal zuerklären.
Ich habe ein z. B. Wort "embarcar" im Feld YO.
Das Wort muss aber zu "embarco" umgewandelt werden.
Mein bisheriges Statement war wie folgt.
db.Execute "UPDATE tabverben SET tabverben.YO = Replace([tabverben].[yo],'ar','o') WHERE (((tabverben.YO) Like '*ar'))and check_konj = 0;"
Das hat aber zur folge, dass aus "embarcar" ein "emboco" wird, was doof ist.
Um das abfangen zukönnen, wollte ich das so lösen wie beschrieben.
Wenn es eine bessere / einfachere Lösung gibt, immer her damit :-)
Ich hoffe das erklärt mein Vorhaben besser.
Das ganze sieht zur Zeit so aus.
Dim vrsar As DAO.Recordset
Set vrsar = CurrentDb.OpenRecordset("Select * from tabverben where right(tabverben.verb,2)='ar' and check_konj = 0", dbOpenDynaset)
Debug.Print vrsar!Verb
'With vrsar
'.Edit
'.Fields("YO") = Replace((Right(vrsar!yo, 2) = "ar"), "ar", "o")
'.Fields("Tu") = Replace(vrsar!tu, "ar", "as")
'.Fields("usted") = Replace(vrsar!usted, "ar", "a")
'.Fields("nos") = Replace(vrsar!nos, "ar", "amos")
'.Fields("vos") = Replace(vrsar!vos, "ar", "áis")
'.Fields("ellas") = Replace(vrsar!vos, "ar", "an")
'db.Execute "UPDATE tabverben SET tabverben.YO = Replace([tabverben].[yo],'ar','o') WHERE (((tabverben.YO) Like '*ar'))and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.YO = substr(tabverben.Yo, 1, length(tabverben.yo)-2)Replace([tabverben].[yo],'ar','o') WHERE substr(tabverben.YO,-2) = 'AR' and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.tu = Replace([tabverben].[tu],'ar','as') WHERE (((tabverben.tu) Like '*ar'))and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.usted = Replace([tabverben].[usted],'ar','a') WHERE (((tabverben.usted) Like '*ar'))and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.nos = Replace([tabverben].[nos],'ar','amos') WHERE (((tabverben.nos) Like '*ar'))and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.vos = Replace([tabverben].[vos],'ar','áis') WHERE (((tabverben.vos) Like '*ar'))and check_konj = 0;"
db.Execute "UPDATE tabverben SET tabverben.ellas = Replace([tabverben].[ellas],'ar','an') WHERE (((tabverben.ellas) Like '*ar'))and check_konj = 0;"
'.Update
' Debug.Print vrsar!yo
' .Close
'End With
End Sub
Gruß
Uwe