Beitrag aus SmartTools Access Weekly
Führende Nullen in Feldern löschen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Wir importieren Daten aus verschiedenen Quellen. Dabei kommen Felder unterschiedlicher Länge mit führenden Nullen, also beispielsweise Inhalte wie "000123", "0000045", "006789" vor. Wir möchten die führenden Nullen löschen, kommen hier aber zum Beispiel mit strInhalt = Mid$(Feld, 4)
nicht weiter, da mal 3, mal 5 oder mal 2 Nullen vorangestellt sind. Wie lässt sich dieses Problem am elegantesten lösen?
A. Möllmann
ANTWORT Verwenden Sie dazu die folgende Funktion:
Function FuehrendeNullenLoeschen(aStr As String) As String
While Left$(aStr, 1)= "0"
DoEvents
aStr = Mid$(aStr, 2)
Wend
FuehrendeNullenLoeschen = aStr
End Function
Solange die als Parameter übergebene Zeichenkette mit "0" beginnt, extrahiert die Funktion den Inhalt ab der 2. Position, überspringt also die jeweils erste führende Null. Beginnt die Zeichenkette nicht mehr mit einer Null, wird die bereinigte Zeichenkette als Funktionsergebnis gesetzt und Sie erhalten die reinen Werte wie "123", "45" oder "6789". Benötigen Sie diese Ergebnisse direkt als numerische Werte, verwenden Sie folgende Funktion:
Function FuehrendeNullenLoeschen(aStr As String) As Long
While Left$(aStr, 1)= "0"
DoEvents
aStr = Mid$(aStr, 2)
Wend
FuehrendeNullenLoeschen = CLng(aStr)
End Function
Hier wird das Funktionsergebnis nach der Bereinigung direkt in den Datentyp "Long" konvertiert.