Veritabanınıza aktarmadan önce bilgileri "temizlemek" oldukça standart bir işlemdir – sonuçta, veritabanı kullanmaya başlamanızın nedenlerinden biri de, belirli kriterlere göre veritabanını tahmin edilebilir bir şekilde sorgulayabilmektir, değil mi? Peki, örneğin, bir kişinin "$" işareti girdiği ancak bir başkasının bunun parasal bir değer olduğunu varsaydığı bir dosyadan bilgi aktarmanız gerektiğinde veya daha da kötüsü, birinin "am" veya "pm" girdiği ancak bir başkasının 24 saatlik saat kullandığı durumlarda dışsal durumları nasıl ele alırsınız? Her zamanki gibi, soruna yaklaşmanın birçok yolu vardır, ancak bir yol, bir dizenin yalnızca bir sayı kümesi olup olmadığını veya herhangi bir "sayı olmayan" karakter içerip içermediğini kontrol etmektir. Biraz VBA ile bu tür bir kontrol basittir – ve bu makale size bunun ne kadar basit olduğunu gösterecektir…
Bunu neden yapmamız gerekiyor?
Eğer giriş veya çıkış şeklini kontrol edemediğiniz herhangi bir bilgiyi içe aktarıyorsanız, bu sorunla daha önce birçok (çok!) kez karşılaşmışsınızdır: İnsanlar bilgileri kendileri için en rahat olan şekilde girerler, tek tip bir şekilde değil. Bu da, bir süre sonra bu sorunu çözmek zorunda kalacağınız anlamına gelir. yapmak içe aktarmadan önce tekdüze.
Bunun tipik bir örneği, verileri sayısal bir alana aktarmanız gerektiği, ancak verilere baktığınızda bazılarının binleri virgülle ayırdığını, bazılarının para birimi işareti eklediğini ve kim bilir başka neler olduğunu gördüğünüz durumdur.
Hızlı bir uyarı!
Temizlenmemiş verileri veritabanınıza aktarmak oldukça yıkıcı olabilir - en iyi ihtimalle raporlamanızı çarpıtabilir, daha da kötüsü, her türlü şeyin bozulmasına neden olabilir - "kirli" verilerin içe aktarılmasının nedeniniz olmasına izin vermeyin. deniyorum erişim sorununu düzelt tüm haftasonu!
Alfabetik karakterlerden nasıl "kurtulur"
Elbette manuel olarak bir arama ve değiştirme yapabilirsiniz, ancak bunu yapmak zaman alabilir ve bir şeyleri gözden kaçırabilirsiniz (örneğin, yalnızca dolar işaretleri için arama yapıyorsanız, euro işaretini veya virgülleri, boşlukları vb. kaçırabilirsiniz) . Bunu yapmanın en kolay ve daha güvenilir yolu, Access'in aşağıdaki kodu kullanarak zor işi yapmasına izin vermektir.
Kod üzerine…
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 ne yapar

Kodu size uyacak şekilde uyarlama
Gördüğünüz gibi – işlev “uzun” bir veri türü döndürür – tamsayılar veya kayan noktalar vb. ile çalışıyorsanız, veritabanınız için doğru türde değeri döndürecek şekilde işlevi buna göre değiştirmek isteyeceksiniz.
Yazar Tanıtımı:
Mitchell Pond, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. onarım SQL Server veritabanı ve excel kurtarma yazılımı ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com