Si es un programador de bases de datos, a veces puede obtener archivos de Excel que tiene que «limpiar» para colocarlos en Access. Dos problemas comunes son causados ​​por los números de seguro social y los códigos postales. Es mejor almacenarlos como texto en la base de datos y no como números, como suele ocurrir en Excel.

(En Excel, los números pueden mostrarse correctamente debido al formato de la celda y no porque estén almacenados como texto).

Incluso cuando el rango tiene el formato de texto en Excel, completo con ceros a la izquierda, Access suele convertir estos valores en números.

Sin embargo, si el número está precedido por un apóstrofo, como en el caso de una etiqueta, Access lo importará correctamente como texto sin el apóstrofo inicial.

Para preparar los Números de Seguridad Social para importarlos en Access, una pequeña macro rápida puede ser útil, una que asegure que los ceros a la izquierda estén presentes y que el apóstrofo esté en su lugar para la celda. Para usar la macro, simplemente seleccione el rango de números de seguridad social y luego ejecute la macro:

Sub SSN2Text()

Dim c As Range     Application.ScreenUpdating = False     'Format selected cells as text     Selection.NumberFormat = "@"

For Each c In Selection         If Left(c, 1) = "'" Then             'strip the apostrophe, if any             c = Mid(c, 2, 99)

Else             c = "'" & Right("000000000" & c, 9)

End If     Next c     Application.ScreenUpdating = True End Sub

La solución para los códigos postales es de naturaleza similar. La macro para procesar códigos postales recorre cada celda de la selección, la formatea como texto, agrega un apóstrofo inicial y enchufa los ceros iniciales. La diferencia es que la macro también debe tener en cuenta las instancias en las que existen códigos postales de cinco o nueve dígitos.

Sub ZIP2Text()

Dim c As Range     Application.ScreenUpdating = False     'Format selected cells as text     Selection.NumberFormat = "@"

For Each c In Selection         If Left(c, 1) = "'" Then             'strip the apostrophe, if any             c = Mid(c, 2, 99)

End If         If Len(c) <= 5 Then             c = "'" & Right("00000" & c, 5)

Else             c = "'" & Right("00000" & c, 10)

End If     Next c     Application.ScreenUpdating = True End Sub

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2400) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:

link: / excelribbon-Preparing_Data_for_Import_into_Access [Preparación de datos para importar en Access].