„Почистването“ на информацията, преди да я импортирате в базата данни, е доста стандартно – в края на краищата, една от причините да започнете да използвате база данни е, за да можете предвидимо да заявите тази база данни по зададени критерии, нали... нали? И така, как се справяте с външни ситуации, когато например трябва да импортирате информация от файл, където един човек въвежда „$“, но друг приема, че знаете, че това е парична стойност – или още по-лошо, когато някой въвежда „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