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

Hozir ulashing:

Ma'lumotni ma'lumotlar bazasiga import qilishdan oldin "tozalash" juda oddiy - axir, buning sabablaridan biri.tarMa'lumotlar bazasidan foydalanish ma'lumotlar bazasini belgilangan mezonlar bo'yicha oldindan so'rashingiz uchundir... to'g'rimi? Masalan, bir kishi “$” kiritgan fayldan ma’lumotni import qilishingiz kerak bo‘lgan, ammo boshqasi siz bu pul ekanligini biladigan tashqi vaziyatlarni qanday hal qilasiz.tary qiymati - yoki undan ham yomoni, kimdir "am" yoki "pm" ni kiritsa, lekin boshqa odam 24 soatlik soatdan foydalanadimi? Odatdagidek, muammoga yondashishning ko'plab usullari mavjud, ammo bitta yo'l - bu satr shunchaki raqamlar to'plamimi yoki unda "raqamlar bo'lmagan" yoki yo'qligini tekshirish. Kichkina VBA bilan bunday tekshirish oddiy - va bu maqola sizga qanchalik sodda ekanligini ko'rsatib beradi ...

Nima uchun biz buni qilishimiz kerak?

Ma'lumotlar belgilariAgar siz uning qanday kiritilishi yoki chiqarilishini nazorat qila olmaydigan har qanday ma'lumotni import qilayotgan bo'lsangiz, unda siz bu muammoga ko'p (ko'p!) marta duch kelgan bo'lasiz - odamlar ma'lumotlarni shu tarzda kiritadilar.ost ular uchun qulay, bir xilda emas. Bu sizga kerak bo'lgunga qadar vaqt masalasi ekanligini anglatadi 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 erda funktsiya juda aniq. Bu erda biz qiladigan yagona narsa, bir vaqtning o'zida bitta belgi orqali uzatiladigan satr orqali aylanishdir. Agar belgi raqam bo'lsa, biz uni tempimizga qo'shamizrary string, va biz tugatgandan so'ng, biz 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.