"Limpar" informações antes de importá-las para o seu banco de dados é uma prática bastante comum — afinal, um dos motivos para usar um banco de dados é justamente poder consultá-lo de forma previsível, com base em critérios definidos, certo? Mas como lidar com situações externas, como, por exemplo, importar informações de um arquivo onde uma pessoa digita "$" e outra assume que se trata de um valor monetário — ou pior, onde alguém digita "am" ou "pm" e outra pessoa usa o formato de 24 horas? Como sempre, existem várias maneiras de abordar o problema, mas uma delas é verificar se uma string é composta apenas por números ou se contém caracteres que não sejam números. Com um pouco de VBA, esse tipo de verificação é simples — e este artigo mostrará como é simples...
Por que precisamos fazer isso?
Se você importa qualquer tipo de informação sobre a qual não tem controle em relação à forma como ela é inserida ou extraída, certamente já se deparou com este problema muitas (muitas!) vezes: as pessoas inserem os dados da maneira que lhes é mais conveniente, e não de forma uniforme. Isso significa que é apenas uma questão de tempo até que você precise... fazer uniformize-o antes de poder importá-lo.
Um exemplo típico disso é quando você precisa importar dados para um campo numérico, mas quando olha para os dados, vê que alguns separaram milhares com vírgulas, outros adicionaram um sinal de moeda - e sabe-se lá o que mais.
Uma palavra rápida de cautela!
A importação de dados que não foram limpos em seu banco de dados pode ser bastante desastrosa - na melhor das hipóteses, pode distorcer seus relatórios, na pior, você pode acabar com todos os tipos de coisas quebradas - não deixe que as importações de dados "sujos" sejam a razão pela qual você está tentando corrigir problema de acesso todo o fim de semana!
Como “se livrar” dos caracteres alfabéticos
Você pode fazer uma pesquisa e substituir manualmente, é claro, mas fazer isso pode levar tempo e você pode perder algo (se estiver pesquisando apenas, por exemplo, cifrões, pode perder o símbolo do euro ou vírgulas, espaços etc.) . Portanto, a maneira mais fácil e confiável de fazer isso é deixar o Access fazer o trabalho pesado usando o código abaixo.
No código…
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
O que o código faz

Adaptando o código para atender você
Como você pode ver – a função retorna um tipo de dado “long” – se você estiver trabalhando com números inteiros, ou pontos flutuantes, etc., então você vai querer alterar a função de acordo para que ela retorne o tipo certo de valor para seu banco de dados.
Introdução do autor:
Mitchell Pond é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar SQL Server banco de dados e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com