Neuigkeiten:

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

Mobiles Hauptmenü

Fehlender Operator

Begonnen von Uwe_Noob, April 16, 2020, 10:56:27

⏪ vorheriges - nächstes ⏩

Uwe_Noob

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
2 Monate Access ^^

PhilS

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 + Len
Davon 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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Uwe_Noob

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
2 Monate Access ^^