„Čistenie“ informácií pred ich importom do databázy je celkom štandardné – koniec koncov, jedným z dôvodov, prečo ste začali používať databázu, je to, aby ste mohli predvídateľne vyhľadávať v tejto databáze stanovené kritériá, však? Ako teda riešiť externé situácie, keď napríklad musíte importovať informácie zo súboru, kde jedna osoba zadá „$“, ale iná predpokladá, že viete, že ide o peňažnú hodnotu – alebo ešte horšie, keď niekto zadá „am“ alebo „pm“, ale iná osoba použije 24-hodinový formát? Ako obvykle, existuje veľa spôsobov, ako sa k problému priblížiť, ale jedným zo spôsobov je skontrolovať, či je reťazec iba súborom čísel alebo či obsahuje nejaké „nečísla“. S trochou VBA je tento druh kontroly jednoduchý – a tento článok vám ukáže, aké jednoduché…
Prečo to musíme robiť?
Ak importujete akékoľvek informácie, nad spôsobom ich zadávania alebo extrahovania nemáte kontrolu, s týmto problémom ste sa už určite stretli mnohokrát (veľa!) – ľudia zadávajú údaje spôsobom, ktorý im najviac vyhovuje, nie jednotným spôsobom. To znamená, že je len otázkou času, kedy budete musieť činiť skôr, ako ho budete môcť importovať.
Typickým príkladom toho je miesto, kde musíte importovať údaje do číselného poľa, ale keď sa pozriete na údaje, uvidíte, že niektoré oddelili tisíce čiarkami, iné pridali znak meny - a ktovie čo ešte.
Krátke slovo opatrnosti!
Importovanie údajov, ktoré neboli vyčistené do vašej databázy, môže byť dosť katastrofálne - v najlepšom prípade môže skresliť vaše vykazovanie, v horšom prípade by ste mohli skončiť s rozbitým všetkým možným - nedovoľte, aby bol „špinavý“ import údajov dôvodom, snažím sa opraviť problém s prístupom celý víkend!
Ako sa „zbaviť“ abecedných znakov
Môžete samozrejme vyhľadať a nahradiť manuálne, ale to môže chvíľu trvať a niečo vám môže uniknúť (ak hľadáte napríklad iba znaky dolára, môže vám chýbať znak eura alebo čiarky, medzery atď.) . Najjednoduchším a najspoľahlivejším spôsobom, ako to urobiť, je nechať program Access vykonať tvrdú prácu pomocou nižšie uvedeného kódu.
Do kódu ...
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
Čo robí kód

Prispôsobenie kódu tak, aby vám vyhovoval
Ako vidíte - funkcia vracia dátový typ „long“ - ak pracujete s celými číslami alebo pohyblivými rádovými bodmi atď., Budete chcieť príslušne zmeniť funkciu tak, aby vrátila správny typ hodnoty pre vašu databázu.
Úvod autora:
Mitchell Pond je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane oprava SQL Server databázy a vynikajúce softvérové produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S