Hallo,
gibt es in Access einen Split-Befehl, mit dem ich in einer Abfrage in der SQL-Ansicht eine Zeichenkette bzw. den Inhalt eines Tabellenfeldes bis zum ersten Vorkommen eines bestimmten Zeichens abschneiden kann?
Bsp:
In der Tabelle steht
abc:def
gh:ijkl
mnop:qr
Und das Ergebnis dieses Befehles liefert mir dann:
abc
gh
mnop
Kennt irgendjemand diesen Befehl oder gibt es den gar nicht?
Hallo.
Kennt irgendjemand diesen Befehl oder gibt es den gar nicht?
Man kann sich mit der InStr -Funktion so etwas zusammennageln. InStr(start,durchsuchterstring,gesuchterstring) liefert die Position eines Zeichens oder Teilstrings in einem anderen String ab Startposition.
Z.B.
InStr(1,„Happy Birthday“,„y“) liefert eine 5.
InStr(6,„Happy Birthday“,„y“) liefert eine 14 (!).
Näheres auf weitere Anfrage.
Gruß Eillicht zu Vensre
Danke, es funktioniert
Man kann sich mit der InStr -Funktion so etwas
zusammennageln.
InStr(start,durchsuchterstring,gesuchterstring) liefert die
Position eines Zeichens oder Teilstrings in einem anderen
String ab Startposition.
Ja, so funktioniert es, wenn man diesen Befehl mit dem mid-Befehl ineinander schachtelt:
Mid(tbl_posteingang.Betreff,1,InStr(1, tbl_posteingang.Betreff, ‚:‘))
Danke und viele Grüße
Martin
Hallo Martin
Direkt geht das nicht aber über die beiden Funktion Teil und Instr kannst du das erstellen
das Abfrage(Sql) müßte dann so aussehen
„SELECT Tabelle1.ID, Mid([Tabelle1]![Text],InStr(1,[Tabelle1]![Text],“:")+1) AS Ausdr2, Tabelle1.Text
FROM Tabelle1;"
bitte beachte das da Ganze dann Accessspezifisch ist also kein standart Sql
Die Basic funktion Split Teilt normal einen Text in so viele unterteile wie oft das zeichen vorhanden ist deshalb macht macht das in einer Abfrage keinen sinn.
mfg Andreas