Hogyan ellenőrizhető, hogy egy karakterlánc tartalmaz-e alfabetikus (nem numerikus) karaktert az Access VBA segítségével

Oszd meg most:

Az információk „megtisztítása” az adatbázisba való importálás előtt meglehetősen szokásos – elvégre az adatbázisok használatának egyik oka az, hogy kiszámíthatóan lekérdezhesd az adatbázist a megadott feltételek alapján, ugye… ugye? Szóval hogyan kezeled a külső helyzeteket, amikor például egy fájlból kell importálnod az információkat, ahol az egyik személy beírja a „$” jelet, de a másik feltételezi, hogy tudod, hogy ez egy pénzérték – vagy ami még rosszabb, amikor valaki beírja az „am” vagy a „pm” értéket, de egy másik személy a 24 órás órát használja? Mint általában, számos módon megközelítheted a problémát, de az egyik módszer az, hogy ellenőrizzük, hogy egy karakterlánc csak számok halmaza, vagy tartalmaz-e „nem számokat”. Egy kis VBA-val ez a fajta ellenőrzés egyszerű – és ez a cikk megmutatja, mennyire egyszerű…

Miért kell ezt tennünk?

AdatkarakterekHa olyan információt importálsz, amelynek bevitelét vagy kinyerését nem tudod befolyásolni, akkor ezzel a problémával már sokszor (sokszor!) találkoztál – az emberek a számukra legkényelmesebb módon adják meg az adatokat, nem egységesen. Ez azt jelenti, hogy csak idő kérdése, hogy mikor kell... csinál egységes, mielőtt importálná.

Ennek tipikus példája az, amikor adatokat kell importálni egy numerikus mezőbe, de ha megnézi az adatokat, azt látja, hogy egyesek vesszővel választották el az ezreket, mások pedig valutajelet adtak hozzá – és még ki tudja, mit.

Egy gyors figyelmeztetés!

Az adatbázisba nem tisztított adatok importálása meglehetősen katasztrofális lehet – legjobb esetben torzíthatja a jelentéseket, rosszabb esetben pedig mindenféle dolog elromolhat – ne hagyja, hogy a „piszkos” adatok importálása legyen az oka igyekszem hozzáférési probléma megoldása egész hétvégén!

Hogyan lehet „megszabadulni” az alfabetikus karakterektől

Természetesen végezhetsz egy keresést és cserélhetsz manuálisan, de ez időbe telhet, és előfordulhat, hogy valamit kihagysz (ha például csak dollárjeleket keresel, akkor hiányozhat az eurójel vagy a vessző, szóköz stb.) . Tehát ennek legegyszerűbb és megbízhatóbb módja, ha az Access-t az alábbi kód segítségével végezheti el a kemény munka.

A kódra…

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

Mit csinál a kód

VBA kódA függvény itt nagyon egyszerű. Csupán annyit teszünk, hogy végigmegyünk az átadott karakterláncon, karakterenként. Ha a karakter egy szám, akkor azt hozzáadjuk az ideiglenes karakterlánchoz, és amikor készen vagyunk, „hosszú” karakterlánccá alakítjuk.

A kód igazítása az Ön igényei szerint

Amint láthatja – a függvény „hosszú” adattípust ad vissza – ha egész számokkal, lebegőpontokkal stb. dolgozik, akkor ennek megfelelően módosítani kell a függvényt, hogy az a megfelelő típusú értéket adja vissza az adatbázishoz.

Szerző Bevezetés:

Mitchell Pond adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás SQL Server adatbázis és Excel helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.