Telefonnummer bereinigen

Hallo zusammen,

ich nutze folgenden Code um " aus einem Tabellenfeld zu entfernen, das funktioniert auch echt Prima.

Dim i As Long, TmpStr As String

If IsNull(MyString) Then Exit Function
For i = 1 To Len(MyString)
If Asc(Mid(MyString, i, 1)) >= 64 Then
TmpStr = TmpStr & Mid(MyString, i, 1)
End If
Next i
MySaeubern = TmpStr

Aufgerufen wird die Function folgendermassen:

sSQL = „“
sSQL = „Update Anlieferung2 Set ZKK = MySaeubern([ZKK])“
db.Execute sSQL

Nun würde ich das auch gerne für die Bereinigung von Telefonnummer verwenden, stehe aber hier etwas auf dem Schlauch.

Hat hier jemand einen passenden Denkanstoss/Lösungsansatz?

Bei der Telefonnummer müssten alle folgenden Zeichen entfernt werden:

„+49“-/()[];,.[A-Z]

Danke schonmal und Gruss

Hallo,

ich nutze folgenden Code um " aus einem Tabellenfeld zu
entfernen, das funktioniert auch echt Prima.

Dim i As Long, TmpStr As String

If IsNull(MyString) Then Exit Function
For i = 1 To Len(MyString)
If Asc(Mid(MyString, i, 1)) >= 64 Then
TmpStr = TmpStr & Mid(MyString, i, 1)
End If
Next i
MySaeubern = TmpStr

Aufgerufen wird die Function folgendermassen:

sSQL = „“
sSQL = „Update Anlieferung2 Set ZKK = MySaeubern([ZKK])“
db.Execute sSQL

Nun würde ich das auch gerne für die Bereinigung von
Telefonnummer verwenden, stehe aber hier etwas auf dem
Schlauch.

Hat hier jemand einen passenden Denkanstoss/Lösungsansatz?

Bei der Telefonnummer müssten alle folgenden Zeichen entfernt
werden:

„+49“-/()[];,.[A-Z]

Extrahiere halt zunächst die Zeichen mit Ascii-Werten zwischen 48 und 57 (Ziffern 0 bis 9) oder teste jeweils ein Zeichen mit der Isnumeric-Funktion, um einen String aus reinen Ziffern zu erhalten. Abschliessend kann ja noch eine evtl. führende Zeichenfolge („49“) abgeschnitten werden.

Alternativ wäre auch der Einsatz von Regular Expressions denkbar…

Gruß
Franz, DF6GL

Hi,

danke Franz, ich habs nun über RegExp gelöst. Das war der fehlende Anstoss.

LG

danke Franz, ich habs nun über RegExp gelöst. Das war der
fehlende Anstoss.

Hallo Tna,

wie sieht der Code aus bei regexp?

Sub test()
MsgBox MySaeubern("allj485u+/(]\67")
MsgBox MySaeubern("a49llj485u+/(]\67")
End Sub

Function MySaeubern(Mystring)
Dim i As Long, TmpStr As String
If IsNull(Mystring) Then Exit Function
For i = 1 To Len(Mystring)
 'If Mid(Mystring, i, 1) \>= "0" And Mid(Mystring, i, 1) 

Gruß
Reinhard