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

Skupna raba zdaj:

»Čiščenje« informacij pred uvozom v bazo podatkov je precej standardno – navsezadnje je eden od razlogov, zakaj ste začeli uporabljati bazo podatkov, ta, da lahko predvidljivo poizvedujete po tej bazi podatkov za določena merila, kajne ... kajne? Kako torej ravnati v zunanjih situacijah, ko morate na primer uvoziti informacije iz datoteke, kjer ena oseba vnese »$«, druga pa domneva, da veste, da gre za denarno vrednost – ali še huje, ko nekdo vnese »am« ali »pm«, tretja oseba pa uporabi 24-urni format? Kot ponavadi obstaja veliko načinov za pristop k problemu, eden od načinov pa je preveriti, ali je niz le niz števil ali pa vsebuje kakšna »neštevila«. Z malo VBA je tovrstno preverjanje preprosto – in ta članek vam bo pokazal, kako preprosto ...

Zakaj moramo to storiti?

Podatkovni znakiČe uvažate kakršne koli podatke, nad katerimi nimate nadzora, kako so vneseni ali izvlečeni, ste se s to težavo verjetno že večkrat (veliko!) srečali – ljudje vnašajo podatke na način, ki jim je najbolj udoben, ne na enoten način. To pomeni, da je le vprašanje časa, kdaj boste morali 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 je tukaj zelo preprosta. Vse, kar tukaj naredimo, je, da se v zanki pomikamo skozi podani niz, en znak naenkrat. Če je znak številka, jo dodamo našemu začasnemu nizu in ko končamo, jo 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.