
Tips.Net > ExcelTips Home > Working with Other Programs > Working with Access > Preparing Data for Import into Access
Summary: When importing Excel information into Access, you need to be concerned with the condition of the data. Here’s how to make sure that two common offenders—Social Security Numbers and ZIP Codes—are imported properly. (This tip works with Microsoft Excel 97, Excel 2000, Excel 2002, Excel 2003, and Excel 2007.)
If you are a database programmer you may sometimes get Excel files that you have to "clean up" to put into Access. Two common problems are caused by Social Security Numbers and ZIP Codes. These are best stored as text in the database, and not as numbers as they often are in Excel. (In Excel the numbers may display properly because of cell formatting, and not because they are stored as text.)
Even when the range is formatted as text in Excel, complete with leading zeroes, Access more often than not converts these values to numbers. However, if the number is preceded with an apostrophe, as for a label, Access will correctly import it as text without the leading apostrophe.
To prepare Social Security Numbers for importing in Access a quick little macro can come in handy—one that makes sure that leading zeros are present and that the apostrophe is in place for the cell. To use the macro, just select the range of Social Security Numbers and then run the 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
The solution for the ZIP Codes is similar in nature. The macro to process ZIP Codes steps through each cell in the selection, formats it as text, adds a leading apostrophe, and plugs in any leading zeroes. The difference is that the macro must also account for instances where there are either five-digit or nine-digit ZIP Codes.
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
Tip #2400 applies to Microsoft Excel versions: 97 2000 2002 2003 2007
Make Home Buying Less Stressful! Why face the annual problems associated with Christmas debt? Learn how to avoid that debt and conquer your financial challenges.
Check out Buying a Home Checklist today!
Want to make Excel do even more? The way is easy when you know how to use macros. This great e-book makes it easy. (more information...)
Ask an Excel Question
Make a Comment
ExcelTips FAQ
ExcelTips Premium
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Word2007 Tips
WordTips
Advertise on the
ExcelTips Site