Cara Memeriksa sama ada String Mengandungi Aksara Abjad (Bukan Numerik) melalui Access VBA

Kongsi Sekarang:

"Membersihkan" maklumat sebelum anda mengimportnya ke dalam pangkalan data anda agak standard – lagipun, salah satu sebab anda mula menggunakan pangkalan data adalah supaya anda boleh meneka pangkalan data tersebut untuk kriteria yang ditetapkan, bukan? Jadi bagaimana anda mengendalikan situasi luaran di mana, sebagai contoh, anda perlu mengimport maklumat daripada fail di mana seorang memasukkan "$" tetapi seorang lagi menganggap anda tahu ia adalah nilai wang – atau lebih teruk lagi, di mana seseorang memasukkan "am" atau "pm" tetapi orang lain menggunakan jam 24 jam? Seperti biasa, terdapat banyak cara untuk menangani masalah ini tetapi salah satu caranya adalah dengan menyemak sama ada rentetan hanyalah satu set nombor, atau sama ada ia mengandungi sebarang "bukan nombor". Dengan sedikit VBA, semakan jenis ini adalah mudah – dan artikel ini akan menunjukkan kepada anda betapa mudahnya…

Mengapa kita perlu melakukan ini?

Watak DataJika anda mengimport sebarang jenis maklumat yang anda tidak mempunyai kawalan ke atas cara ia dimasukkan atau diekstrak, maka anda pasti pernah menghadapi masalah ini berkali-kali sebelum ini – orang ramai memasukkan butiran dengan cara yang paling selesa bagi mereka, bukan dengan cara yang seragam. Ini bermakna hanya menunggu masa sebelum anda perlu membuat ia seragam sebelum anda dapat mengimportnya.

Contoh tipikal ini adalah di mana anda perlu mengimport data ke dalam bidang angka tetapi apabila anda melihat data, anda melihat bahawa beberapa telah memisahkan ribuan dengan koma, yang lain telah menambahkan tanda mata wang - dan siapa yang tahu apa lagi.

Segera berhati-hati!

Mengimport data yang belum dibersihkan ke dalam pangkalan data anda boleh menjadi sangat buruk - paling baik ia dapat melengkapkan pelaporan anda, lebih buruk lagi anda boleh berakhir dengan pelbagai perkara yang rosak - jangan biarkan import data "kotor" menjadi alasan anda sedang berusaha untuk menyelesaikan masalah Akses semua hujung minggu!

Cara "menyingkirkan" watak abjad

Anda tentu boleh melakukan carian dan mengganti secara manual, tetapi melakukan itu memerlukan masa dan anda mungkin terlepas sesuatu (jika anda hanya mencari, misalnya, untuk tanda dolar, anda mungkin terlepas tanda euro atau koma, ruang dll) . Jadi kaedah yang paling mudah dan boleh dipercayai adalah membiarkan Access melakukan kerja keras menggunakan kod di bawah.

Ke atas kod ...

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

Apa kod itu

Kod VBAFungsi di sini sangat mudah. ​​Apa yang kita lakukan di sini hanyalah mengulangi rentetan yang dihantar, satu aksara pada satu masa. Jika aksara itu ialah nombor, maka kita tambahkannya pada rentetan sementara kita, dan apabila selesai, kita tukarkannya kepada "panjang".

Mengadaptasi kod yang sesuai dengan anda

Seperti yang anda lihat - fungsi mengembalikan jenis data "panjang" - jika anda bekerja dengan bilangan bulat, atau titik terapung dan lain-lain, maka anda ingin mengubah fungsi dengan sewajarnya sehingga mengembalikan jenis nilai yang tepat untuk pangkalan data anda.

Pengenalan Pengarang:

Mitchell Pond adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk pembaikan SQL Server pangkalan data dan produk perisian pemulihan yang unggul. Untuk maklumat lebih lanjut, lawati www.datanumen.com

Kongsi Sekarang:

Ruangan komen telah ditutup.