Kako preveriti, ali niz vsebuje abecedni (neštevilski) znak prek Access VBA

Skupna raba zdaj:

»Čiščenje« informacij, preden jih uvozite v bazo podatkov, je precej standardno - navsezadnje je to eden izmed razlogov, zakaj stetaruporabiti bazo podatkov, tako da lahko predvidljivo poizvedete v tej bazi podatkov za nastavljena merila, kajne ... kajne? Torej, kako ravnate z zunanjimi situacijami, ko morate na primer uvoziti informacije iz datoteke, kjer ena oseba vnese »$«, druga pa domneva, da veste, da gre za denartary vrednost - ali še huje, če nekdo vpiše »am« ali »pm«, druga oseba pa uporablja 24-urno uro? Kot ponavadi obstaja veliko načinov, kako pristopiti k težavi, vendar je en način preveriti, ali je niz samo niz številk ali vsebuje »neštevila«. Z malo VBA je tovrstno preverjanje preprosto - in ta članek vam bo pokazal, kako preprost ...

Zakaj moramo to storiti?

Podatkovni znakiČe uvozite kakršne koli informacije, ki nimajo nadzora nad njihovim vnosom ali izvlečenjem, boste na to težavo naleteli že velikokrat (veliko!) - ljudje vnašajo podrobnosti na način, kiost zanje udobno, ne na enoten način. To pomeni, da je le vprašanje časa, kdaj bo treba Znamka preden ga lahko uvozite.

Tipičen primer tega je, da morate podatke uvoziti v številčno polje, a ko pogledate podatke, vidite, da so nekateri tisoče ločili z vejicami, drugi pa so dodali znak valute - in kdo ve, kaj še.

Hitro opozorilo!

Uvoz podatkov, ki niso bili očiščeni v vašo bazo podatkov, je lahko precej katastrofalen - v najboljšem primeru lahko pokvari vaše poročanje, v najslabšem primeru pa se lahko konča z vsemi mogočimi stvarmi - ne dovolite, da "umazan" uvoz podatkov povzroči poskušam odpraviti težavo z dostopom cel vikend!

Kako se "znebiti" abecednih znakov

Seveda lahko ročno poiščete in zamenjate, vendar lahko to traja nekaj časa in morda boste kaj zamudili (če iščete na primer znake dolarja, lahko pogrešate znak evra ali vejice, presledke itd.) . Torej je najlažji in zanesljivejši način, da Access pusti težko delo s spodnjo kodo.

Na kodo ...

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

Kaj naredi koda

Koda VBAFunkcija tukaj je zelo neposredna. Vse, kar tukaj naredimo, je, da zapišemo niz, ki ga posredujemo, en znak naenkrat. Če je znak številka, to dodamo našemu tempurary string, in ko končamo, to pretvorimo v "long".

Prilagajanje kode, ki vam ustreza

Kot lahko vidite - funkcija vrne podatkovni tip »long« - če delate s celimi števili ali s plavajočimi točkami itd., Boste funkcijo želeli ustrezno spremeniti, tako da vrne pravo vrsto vrednosti za vašo bazo podatkov.

Uvod avtorja:

Mitchell Pond je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z popravilo SQL Server Baza podatkov in excel programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com

Skupna raba zdaj:

Komentarji so zaprti.