Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Letztes Zeichen vom String löschen

Begonnen von Torsten., Dezember 29, 2014, 09:29:32

⏪ vorheriges - nächstes ⏩

Torsten.

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.

MzKlMu

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.
Gruß Klaus

bahasu

Hi,

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

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

Harald
Servus

MzKlMu

#3
@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
Gruß Klaus

bahasu

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
Servus

MzKlMu

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)=","))
Gruß Klaus

Torsten.

Bin gerade dabei zu prüfen - melde mich sobald ich mehr weiß.
Torsten.

database

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

Torsten.

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.

database

@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.

bahasu

Danke Peter,
Du hast eine Klammer bei mir gut  ;)
Harald
Servus

database

Hi,

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