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

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