Limpiar la información antes de importarla a la base de datos es bastante común; al fin y al cabo, una de las razones por las que se empieza a usar una base de datos es para poder consultarla de forma predecible según criterios preestablecidos, ¿verdad? Entonces, ¿cómo se gestionan situaciones externas en las que, por ejemplo, hay que importar información de un archivo donde una persona introduce "$" pero otra asume que se trata de un valor monetario? O peor aún, ¿donde alguien introduce "am" o "pm" pero otra persona usa el formato de 24 horas? Como siempre, hay muchas maneras de abordar el problema, pero una de ellas es comprobar si una cadena es solo un conjunto de números o si contiene caracteres que no sean números. Con un poco de VBA, este tipo de comprobación es sencilla, y este artículo le mostrará lo fácil que es.
¿Por qué necesitamos hacer esto?
Si importas cualquier tipo de información sobre la que no tienes control de cómo se introduce o extrae, entonces te habrás encontrado con este problema muchas (¡muchísimas!) veces antes: la gente introduce los datos de la forma que le resulta más cómoda, no de forma uniforme. Esto significa que es solo cuestión de tiempo antes de que tengas que... “piensen de nuevo sobre los incrementos de precio” uniforme antes de que pueda importarlo.
Un ejemplo típico de esto es cuando necesita importar datos en un campo numérico, pero cuando mira los datos, ve que algunos han separado miles con comas, otros han agregado un signo de moneda, y quién sabe qué más.
¡Una rápida advertencia!
Importar datos que no se han limpiado en su base de datos puede ser bastante desastroso; en el mejor de los casos, puede sesgar sus informes, en el peor, podría terminar con todo tipo de cosas rotas; no permita que las importaciones de datos "sucios" sean la razón por la que estás tratando de arreglar problema de acceso ¡todo el fin de semana!
Cómo "deshacerse" de los caracteres alfabéticos
Puede hacer una búsqueda y reemplazar manualmente, por supuesto, pero hacerlo puede llevar tiempo y es posible que se pierda algo (si solo está buscando, por ejemplo, signos de dólar, es posible que se pierda el símbolo del euro o las comas, espacios, etc.) . Entonces, la forma más fácil y confiable de hacerlo es dejar que Access haga el trabajo duro usando el código a continuación.
En el 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
Que hace el codigo

Adaptando el código a tu medida
Como puede ver, la función devuelve un tipo de datos "largo". Si está trabajando con números enteros o puntos flotantes, etc., entonces querrá cambiar la función en consecuencia para que devuelva el tipo de valor correcto para su base de datos.
Introducción del autor:
Mitchell Pond es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparación SQL Server base de datos de CRISPR Medicine News y productos de software de recuperación de Excel. Para más información visite www.datanumen.com