moeller67
Goto Top

Zahl aus Text filtern (in einer Abfrage)

Ich möchte in einer Abfrage in Access aus einem Feld, das Zahlen und ein paar Buchstaben beinhaltet (z.B. "F 17" oder "894 K" oder "CK 77"),
jeweils nur die Zahl herausfischen (also z.B. 17 oder 894 oder 77). Hat jemand dafür eine Lösung???

Content-Key: 96717

Url: https://administrator.de/contentid/96717

Printed on: April 23, 2024 at 17:04 o'clock

Member: bastla
bastla Sep 11, 2008 at 15:49:32 (UTC)
Goto Top
Hallo moeller67!

Du könntest dafür eine benutzerdefinierte Funktion verwenden. Der folgende VBA-Code filtert zB aus dem übergebenen Wert alle Ziffern heraus (auch, wenn dazwischen andere Zeichen vorkommen):
Function LeseZahl(Eingabe)
Dim L As String, Zahl As String, Zeichen As String, i As Integer
L = Len(Eingabe)
Zahl = ""  
For i = 1 To L
    Zeichen = Mid(Eingabe, i, 1)
    If Zeichen >= "0" And Zeichen <= "9" Then Zahl = Zahl & Zeichen  
Next
LeseZahl = Zahl
End Function
Um die Funktion "LeseZahl()" verwenden zu können, zunächst im Datenbankfenster über "Module / Neu" ein Modul erstellen und den Code in dieses Modul kopieren. Beim Speichern das Modul mit einem pssenden Namen versehen, etwa "Funktionen".

In einer Abfrage kannst Du dann folgendes berechnete Feld verwenden:
Zahl: LeseZahl([EinFeld])
bzw als SQL-Statement
SELECT LeseZahl([EinFeld]) AS Zahl FROM EineTabelle;
Wurde keine einzige Ziffer gefunden, ist das Ergebnis ein leerer String "".

Grüße
bastla
Member: moeller67
moeller67 Sep 12, 2008 at 06:54:39 (UTC)
Goto Top
Hat super geklappt. Vielen Dank. Gruß Stephan Möller