Access VBA orqali satrda alifbo (raqamli bo'lmagan) belgilar mavjudligini qanday tekshirish mumkin

Hozir ulashing:

Ma'lumotlar bazasiga import qilishdan oldin ma'lumotni "tozalash" juda standart - axir, ma'lumotlar bazasidan foydalanishni boshlaganingizning sabablaridan biri, siz ushbu ma'lumotlar bazasiga belgilangan mezonlar bo'yicha oldindan aytib bo'ladigan tarzda so'rov yuborishingiz mumkin, to'g'rimi... to'g'rimi? Xo'sh, tashqi vaziyatlarni qanday hal qilasiz, masalan, bir kishi "$" ni kiritadi, lekin boshqasi siz uning pul qiymati ekanligini bilasiz deb taxmin qiladigan fayldan ma'lumot import qilishingiz kerak bo'ladi - yoki undan ham yomoni, kimdir "am" yoki "pm" ni kiritadi, lekin boshqasi 24 soatlik soatdan foydalanadimi? Odatdagidek, muammoga yondashishning ko'plab usullari mavjud, ammo ulardan biri satr shunchaki raqamlar to'plami ekanligini yoki unda biron bir "raqam bo'lmagan" narsa borligini tekshirishdir. Bir oz VBA bilan bu turdagi tekshirish juda oson - va bu maqola sizga qanchalik sodda ekanligini ko'rsatib beradi...

Nima uchun biz buni qilishimiz kerak?

Ma'lumotlar belgilariAgar siz qanday kiritilishi yoki chiqarilishini nazorat qila olmaydigan biron bir ma'lumotni import qilsangiz, unda siz bu muammoga ilgari ko'p (ko'p!) marta duch kelgan bo'lasiz - odamlar ma'lumotlarni bir xil tarzda emas, balki o'zlari uchun eng qulay tarzda kiritadilar. Bu shuni anglatadiki, siz buni qilishingiz kerak bo'lishi vaqt masalasidir. qilmoq import qilishdan oldin u bir xil bo'ladi.

Buning odatiy misoli, siz ma'lumotlarni raqamli maydonga import qilishingiz kerak, ammo ma'lumotlarga qaraganingizda, ba'zilari minglab raqamlarni vergul bilan ajratganini, boshqalari valyuta belgisini qo'shganini ko'rasiz - va yana nima biladi.

Tezkor ogohlantirish so'zi!

Ma'lumotlar bazasiga tozalanmagan ma'lumotlarni import qilish juda halokatli bo'lishi mumkin - eng yaxshi holatda bu sizning hisobotingizni buzishi mumkin, eng yomoni, siz har xil narsalarning buzilishiga olib kelishi mumkin - "iflos" ma'lumotlar importiga sabab bo'lishiga yo'l qo'ymang. harakat qilmoqdalar kirish muammosini hal qilish butun hafta oxiri!

Qanday qilib alifbo belgilaridan "qutulish" mumkin

Siz, albatta, qo'lda qidirishingiz va almashtirishingiz mumkin, lekin bu vaqt talab qilishi va biror narsani o'tkazib yuborishingiz mumkin (agar siz faqat dollar belgilarini qidirayotgan bo'lsangiz, siz evro belgisini yoki vergullarni, bo'shliqlarni va hokazolarni o'tkazib yuborishingiz mumkin) . Shunday qilib, buni amalga oshirishning eng oson va ishonchli usuli Accessga quyidagi kod yordamida qiyin ishni bajarishga ruxsat berishdir.

Kodga…

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

Kod nima qiladi

VBA kodiBu yerdagi funksiya juda oddiy. Bu yerda biz faqat uzatilgan satrni bitta belgidan ikkinchisiga aylantirishimiz kerak. Agar belgi raqam bo'lsa, biz uni vaqtinchalik satrimizga qo'shamiz va tugatgandan so'ng uni "uzun" ga aylantiramiz.

Kodni sizga moslashtirish

Ko'rib turganingizdek - funksiya "uzun" ma'lumotlar turini qaytaradi - agar siz butun sonlar yoki suzuvchi nuqtalar bilan ishlayotgan bo'lsangiz, u holda ma'lumotlar bazasi uchun to'g'ri turdagi qiymatni qaytarishi uchun funktsiyani mos ravishda o'zgartirishni xohlaysiz.

Muallif kirish:

Mitchell Pond - ma'lumotlarni qayta tiklash bo'yicha mutaxassis DataNumenMa'lumotlarni qayta tiklash texnologiyalari bo'yicha jahon yetakchisi bo'lgan , Inc ta'mirlash SQL Server ma'lumotlar bazasi va excel tiklash dasturiy mahsulotlar. Qo'shimcha ma'lumot olish uchun tashrif buyuring www.datanumen.com

Hozir ulashing:

Comments are closed.