Kaip patikrinti, ar eilutėje yra abėcėlinis (ne skaitinis) simbolis naudojant „Access VBA“

Bendrinti dabar:

Informacijos „išvalymas“ prieš importuojant ją į duomenų bazę yra gana įprastas procesas – juk viena iš priežasčių, kodėl pradėjote naudoti duomenų bazę, yra ta, kad galėtumėte nuspėjamai pateikti užklausas tai duomenų bazei pagal nustatytus kriterijus, tiesa? Taigi, kaip elgtis išorinėse situacijose, kai, pavyzdžiui, turite importuoti informaciją iš failo, kuriame vienas asmuo įveda „$“, o kitas mano, kad žinote, jog tai piniginė vertė, arba dar blogiau, kai kažkas įveda „am“ arba „pm“, o kitas naudoja 24 valandų formatą? Kaip įprasta, yra daug būdų spręsti problemą, tačiau vienas iš jų yra patikrinti, ar eilutė yra tik skaičių rinkinys, ar joje yra kokių nors „ne skaičių“. Naudojant šiek tiek VBA, tokio tipo patikrinimas yra paprastas – ir šis straipsnis parodys, koks paprastas...

Kodėl mums reikia tai daryti?

Duomenų simboliaiJei importuojate bet kokią informaciją, kurios įvedimo ar išgavimo nekontroliuojate, su šia problema jau esate susidūrę daug (daug!) kartų – žmonės duomenis įveda taip, kaip jiems patogiausia, o ne vienodai. Tai reiškia, kad tik laiko klausimas, kada jums teks... padaryti prieš importuojant.

Tipiškas pavyzdys, kai reikia importuoti duomenis į skaitinį lauką, bet kai žiūrite į duomenis, matote, kad vieni tūkstančius atskyrė kableliais, kiti pridėjo valiutos ženklą – ir kas žino dar ką.

Greitas įspėjimas!

Neišvalytų duomenų importavimas į duomenų bazę gali būti gana pražūtingas – geriausiu atveju tai gali iškreipti ataskaitų teikimą, o dar blogesniu atveju gali būti sugadinti įvairūs dalykai – neleiskite, kad „nešvarių“ duomenų importas būtų priežastis. stengiuosi ištaisyti prieigos problemą visą savaitgalį!

Kaip „atsikratyti“ abėcėlės simbolių

Žinoma, galite atlikti paiešką ir pakeisti rankiniu būdu, bet tai gali užtrukti ir jūs galite ką nors praleisti (jei ieškote, pavyzdžiui, dolerio ženklų, galite praleisti euro ženklą arba kablelius, tarpus ir pan.) . Taigi lengviausias ir patikimesnis būdas tai padaryti yra leisti Access atlikti sunkų darbą naudojant toliau pateiktą kodą.

Prie 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

Ką daro kodas

VBA kodasFunkcija čia yra labai paprasta. Viskas, ką darome, tai cikliškai peržiūrime perduodamą eilutę po vieną simbolį. Jei simbolis yra skaičius, jį pridedame prie laikinos eilutės ir, baigę, konvertuojame ją į „ilgąją“ eilutę.

Kodo pritaikymas jums tinkamam

Kaip matote, funkcija grąžina duomenų tipą „ilgas“ – jei dirbate su sveikaisiais skaičiais, slankiaisiais taškais ir pan., tuomet norėsite atitinkamai pakeisti funkciją, kad ji grąžintų reikiamo tipo reikšmę jūsų duomenų bazei.

Autoriaus įvadas:

Mitchell Pond yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant remontas SQL Server duomenų bazė ir Excel atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

Bendrinti dabar:

Komentarai yra uždaryti.