»Č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?
Č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

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