So überprüfen Sie, ob eine Zeichenfolge über Access VBA ein alphabetisches (nicht numerisches) Zeichen enthält

Jetzt teilen:

Das Bereinigen von Daten vor dem Import in Ihre Datenbank ist Standard – schließlich nutzen Sie eine Datenbank ja gerade, um sie anhand festgelegter Kriterien gezielt abfragen zu können, oder? Wie gehen Sie also mit externen Situationen um, in denen Sie beispielsweise Daten aus einer Datei importieren müssen, in der eine Person „$“ eingibt, eine andere aber annimmt, dass es sich um einen Geldwert handelt? Oder noch schlimmer: Jemand gibt „am“ oder „pm“ ein, eine andere Person verwendet aber die 24-Stunden-Uhr? Wie üblich gibt es viele Lösungsansätze. Ein Ansatz besteht darin, zu prüfen, ob eine Zeichenkette nur aus Zahlen besteht oder auch andere Zeichen enthält. Mit etwas VBA ist diese Prüfung einfach – und dieser Artikel zeigt Ihnen, wie einfach.

Warum müssen wir das tun?

DatenzeichenWenn Sie Informationen importieren, deren Eingabe oder Extraktion Sie nicht kontrollieren können, sind Sie diesem Problem sicherlich schon oft begegnet: Nutzer geben Daten so ein, wie es ihnen am besten passt, nicht einheitlich. Das bedeutet, dass es nur eine Frage der Zeit ist, bis Sie … um es einheitlich, bevor Sie es importieren können.

Ein typisches Beispiel hierfür ist, dass Sie Daten in ein numerisches Feld importieren müssen. Wenn Sie sich jedoch die Daten ansehen, sehen Sie, dass einige Tausende durch Kommas getrennt haben, andere ein Währungszeichen hinzugefügt haben - und wer weiß was noch.

Ein kurzes Wort zur Vorsicht!

Das Importieren von Daten, die nicht in Ihre Datenbank bereinigt wurden, kann ziemlich katastrophal sein - im besten Fall kann es Ihre Berichterstellung verzerren, schlimmer noch, Sie könnten alle möglichen Probleme haben - lassen Sie sich nicht von „schmutzigen“ Datenimporten leiten versuche es Zugriffsproblem beheben jedes Wochenende!

Wie man alphabetische Zeichen „loswird“

Sie können natürlich manuell suchen und ersetzen, aber dies kann einige Zeit dauern und Sie können etwas verpassen (wenn Sie beispielsweise nur nach Dollarzeichen suchen, verpassen Sie möglicherweise das Eurozeichen oder Kommas, Leerzeichen usw.). . Der einfachste und zuverlässigste Weg, dies zu tun, besteht darin, Access die harte Arbeit mit dem folgenden Code ausführen zu lassen.

Auf den Code…

Public Function removeNonNumeric(inString As String) As Long
    Dim outputString, chrString As String
    Dim strPos As Integer
    
    For strPos = 1 To Len(inString)
        chrString = Mid(inString, strPos, 1)
        If IsNumeric(chrString) Then outputString = outputString & chrString
    Next
    
    removeNonNumeric = CLng(outputString)
End Function

Was der Code macht

VBA-CodeDie Funktion ist sehr einfach. Wir durchlaufen die übergebene Zeichenkette Zeichen für Zeichen. Handelt es sich um eine Zahl, fügen wir diese unserer temporären Zeichenkette hinzu und wandeln sie anschließend in einen „long“-Wert um.

Passen Sie den Code an Ihre Bedürfnisse an

Wie Sie sehen können, gibt die Funktion den Datentyp "long" zurück. Wenn Sie mit Ganzzahlen, Gleitkommazahlen usw. arbeiten, sollten Sie die Funktion entsprechend ändern, damit sie den richtigen Werttyp für Ihre Datenbank zurückgibt.

Einführung des Autors:

Mitchell Pond ist ein Datenrettungsexperte in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Reparatur- SQL Server Datenbank und Excel-Wiederherstellungssoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.