«Очищення» інформації перед імпортом у базу даних є досить стандартною справою – зрештою, одна з причин, чому ви почали використовувати базу даних, полягає в тому, щоб мати змогу передбачувано запитувати її за встановленими критеріями, чи не так? Тож як ви справляєтеся зі зовнішніми ситуаціями, коли, наприклад, вам потрібно імпортувати інформацію з файлу, де одна людина вводить «$», але інша припускає, що ви знаєте, що це грошове значення, або, що ще гірше, коли хтось вводить «am» або «pm», але інша людина використовує 24-годинний формат? Як завжди, існує багато способів підійти до проблеми, але один із них – перевірити, чи є рядок просто набором чисел, чи містить він якісь «нечисла». З невеликим VBA така перевірка проста, і ця стаття покаже вам, наскільки просто…
Навіщо нам це робити?
Якщо ви імпортуєте будь-яку інформацію, над якою ви не маєте контролю над тим, як вона вводиться або видобувається, то ви вже багато (багато!) разів стикалися з цією проблемою – люди вводять дані так, як їм зручно, а не однорідно. Це означає, що це лише питання часу, коли вам доведеться… зробити перед тим, як ви зможете імпортувати його.
Типовий приклад цього - де вам потрібно імпортувати дані в числове поле, але коли ви переглядаєте дані, то бачите, що одні розділили тисячі комами, інші додали знак валюти - і хто знає, що ще.
Швидке застереження!
Імпорт даних, які не були очищені у вашій базі даних, може бути досить згубним - в кращому випадку це може перекосити ваші звіти, в гіршому випадку ви можете закінчити всілякі речі зламаними - не дозволяйте "брудним" імпортом даних бути причиною того, що ви намагаюся виправити проблему доступу всі вихідні!
Як «позбутися» алфавітних символів
Звичайно, ви можете зробити пошук і замінити вручну, але це може зайняти час, і ви можете щось пропустити (якщо ви шукаєте лише, наприклад, знаки долара, ви можете пропустити знак євро або коми, пробіли тощо) . Тож найпростіший і надійніший спосіб зробити це - дозволити Access виконувати важку роботу, використовуючи наведений нижче код.
На код ...
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
Що робить код

Адаптація коду відповідно до вас
Як бачите - функція повертає тип даних "long" - якщо ви працюєте з цілими числами, плаваючими комами тощо, тоді вам потрібно буде змінити функцію відповідно, щоб вона повертала правильний тип значення для вашої бази даних.
Вступ автора:
Мітчелл Понд - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі ремонт SQL Server база даних та програмні продукти Excel для відновлення. Для отримання додаткової інформації відвідайте WWW.datanumen.com