Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Torsten. am Dezember 29, 2014, 09:29:32

Titel: Letztes Zeichen vom String löschen
Beitrag von: Torsten. am Dezember 29, 2014, 09:29:32
Hallo zusammen,
im Anhang eine Beispiel-DB.
Ich möchte das wenn das letzte Zeichen eines Strings ein "Komma" oder wie im Datensatz 6 zusätzlich ein "Leerzeichen" ist, diese(s) entfernt werden/wird.
Ich habe diverse Hinweise aus dem Internet verfolgt und probiert, aber ein Ergebnis konnte ich mangels Kenntnisse nicht umsetzen.
Kann mir jemand von Euch behilflich sein zum Ergebnis zu kommen?

Gruß Torsten.
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: MzKlMu am Dezember 29, 2014, 10:24:18
Hallo,
Bschr ist ja ein Feldname und muss demzufolge in ein [] Klammerpaar.
So klappt es:
Links([bschr];InStrRev([bschr];",")-1)
Das Leerzeichen ist dann auch weg.
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: bahasu am Dezember 29, 2014, 10:53:48
Hi,

tritt nicht ein Fehler auf, wenn es kein Komma gibt?

iif(instrrev([bschr];",") > 0;(Links([bschr];InStrRev([bschr];",")-1); [bschr])

Harald
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: MzKlMu am Dezember 29, 2014, 11:06:28
@Harald,

Du hast recht, aber es gibt keinen Fehler, es sind ja mehrere Kommas vorhanden. Es führt dann aber zu einem falschen Ergebnis.

Mit Deiner Formel geht es auch nicht, denn es wird ja in jedem Fall ein Komma gefunden.

Da müssen wir noch mal nachdenken.  ;D
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: bahasu am Dezember 29, 2014, 11:14:45
Hi,

Zitat von: MzKlMu am Dezember 29, 2014, 11:06:28
mehrere Kommas

dann für "rechteste" Komma:  iif(right([bschr];1) = ",";(Links([bschr];InStrRev([bschr];",")-1); [bschr])

Harald
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: MzKlMu am Dezember 29, 2014, 11:18:39
Hallo,
geht auch nicht, denn in DS 6 ist ja ein Leerzeichen zum Schluss, das heißt da bleibt das Komma dann stehen, weil das Leerzeichen entfernt wird.

Ich habe folgenden Vorschlag:
Links([bschr];Länge(Glätten([bschr]))+(Rechts(Glätten([bschr]);1)=","))
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: Torsten. am Dezember 29, 2014, 11:35:25
Bin gerade dabei zu prüfen - melde mich sobald ich mehr weiß.
Torsten.
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: database am Dezember 29, 2014, 12:39:34
Hallo,

du kannst auch eine VBA-Function für dich arbeiten lassen  8)

Ruf in deinem Beispiel die 'qryBereinigen' dazu auf, die Function befindet sich im Modul 'basFunktionen'

sollte dein gewünschtes Ergebnis liefern können
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: Torsten. am Dezember 29, 2014, 14:32:30
An euch 3en vielen Dank für die Hilfe.

@Klaus: Funktioniert mit Links([bschr];Länge(Glätten([bschr]))+(Rechts(Glätten([bschr]);1)=","))

@Harald: Habe ich leider nicht zum laufen bekommen iif(right([bschr];1) = ",";(Links([bschr];InStrRev([bschr];",")-1); [bschr])

@Peter: Prima die Bearbeitung direkt in der DB, funktioniert natürlich auch.

@All:
Wenn ich ein "Vielen Dank..." schreibe, spiegelt es eigentlich garnicht den Wert Eurer Hilfe (nicht nur bei dieser Problemstellung) wieder, die Ihr mir da gebt.

Grüße Torsten.
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: database am Dezember 29, 2014, 18:08:27
@Harald, @Torsten

hier ist eine öffnende Klammer zu viel:

iif(right([bschr];1) = ",";(Links([bschr];InStrRev([bschr];",")-1); [bschr])

und ...

Zitat von: MzKlMu am Dezember 29, 2014, 11:06:28

... Es führt dann aber zu einem falschen Ergebnis.

... wenn das letzte Zeichen kein Komma ist, wird der Text bis zum ersten auffindbaren Komma - von hinten gelesen - abgeschnitten.
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: bahasu am Dezember 29, 2014, 18:36:38
Danke Peter,
Du hast eine Klammer bei mir gut  ;)
Harald
Titel: Re: Letztes Zeichen vom String löschen
Beitrag von: database am Dezember 29, 2014, 18:40:17
Hi,

hmmm... mal überlegen wo ich die lagere    ;D ;D