Как проверить, содержит ли строка буквенный (нечисловой) символ с помощью Access VBA

Поделись сейчас:

«Очистка» информации перед ее импортом в базу данных — довольно стандартная процедура — в конце концов, это одна из причин, по которой выtarИспользование базы данных заключается в том, что вы можете предсказуемо запрашивать эту базу данных по заданным критериям, верно… верно? Итак, как вы справляетесь с внешними ситуациями, когда, например, вам нужно импортировать информацию из файла, где один человек вводит «$», а другой предполагает, что вы знаете, что это моне?tary — или, что еще хуже, когда кто-то вводит «am» или «pm», а другой человек использует 24-часовой формат времени? Как обычно, существует множество способов решения проблемы, но один из них — проверить, является ли строка просто набором чисел или содержит какие-либо «не числа». С небольшим VBA такая проверка проста — и эта статья покажет вам, насколько просто…

Зачем нам это нужно?

Символы данныхЕсли вы импортируете какую-либо информацию, которую вы не контролируете, как она вводится или извлекается, то вы уже сталкивались с этой проблемой много (много!) раз — люди вводят данные таким образом,ost им удобно, а не единообразно. Это означает, что это только вопрос времени, прежде чем вам придется сделать он равномерный, прежде чем вы сможете его импортировать.

Типичным примером этого является случай, когда вам нужно импортировать данные в числовое поле, но когда вы смотрите на данные, вы видите, что некоторые разделили тысячи запятыми, другие добавили знак валюты — и кто знает что еще.

Небольшое предостережение!

Импорт неочищенных данных в вашу базу данных может привести к катастрофическим последствиям — в лучшем случае это может исказить ваши отчеты, в худшем случае вы можете столкнуться со всевозможными поломками — не позволяйте импорту «грязных» данных быть причиной пытаешься решить проблему с доступом все выходные!

Как «избавиться» от букв алфавита

Конечно, вы можете выполнить поиск и замену вручную, но это может занять время, и вы вполне можете что-то упустить (если вы ищете, например, только знаки доллара, вы можете пропустить знак евро или запятые, пробелы и т. д.) . Таким образом, самый простой и надежный способ сделать это — позволить Access выполнить тяжелую работу, используя приведенный ниже код.

По коду…

Открытая функция 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 Далее removeNonNumeric = CLng(outputString) End Function

Что делает код

Код VBAФункция здесь очень прямолинейна. Все, что мы здесь делаем, это перебираем переданную строку по одному символу за раз. Если символ является числом, мы добавляем его к нашему темпу.rary строка, и когда мы закончим, мы конвертируем ее в «длинную».

Адаптация кода под себя

Как видите, функция возвращает «длинный» тип данных. Если вы работаете с целыми числами или числами с плавающей запятой и т. д., вам нужно соответствующим образом изменить функцию, чтобы она возвращала правильный тип значения для вашей базы данных.

Об авторе:

Митчелл Понд — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая ремонт SQL Server база данных и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.