Gegevens voorbereiden voor import in Access

Als u een database programmeur kun je het soms krijgen Excel-bestanden die je moet "opruimen" in Access te zetten. Twee veel voorkomende problemen worden veroorzaakt door sofinummers en ZIP Codes. Deze worden het best opgeslagen als tekst in de database, en niet als getallen zoals ze vaak in Excel. (In Excel de nummers kan goed worden weergegeven als gevolg van celopmaak, en niet omdat ze worden opgeslagen als tekst.)

Zelfs als het bereik wordt opgemaakt als tekst in Excel, compleet met voorloopnullen, Access meestal niet zet deze waarden in getallen. Indien het nummer voorafgegaan door een apostrof, zoals een label, wordt toegang kunnen importeren als tekst zonder het voorafgaande apostrof.

Om sofinummers te bereiden voor het importeren in Access een snelle kleine macro kan van pas komen-een die ervoor zorgt dat nullen aanwezig is en dat de apostrof is op zijn plaats voor de cel zijn maakt. Om de macro te gebruiken, selecteert u het bereik van de sofinummers en voer de macro:

Sub SSN2Text ()
Dim c als Waaier
Application.ScreenUpdating = False
'Format geselecteerde cellen als tekst
Selection.NumberFormat = "@"
Voor Elke c In Selection
Als Links (c, 1) = "" "Dan
'Strip de apostrof, eventuele
c = Mid (c, 2, 99)
Anders
c = "'" & Right ("000000000" & c, 9)
End If
Volgende c
Application.ScreenUpdating = True
End Sub

De oplossing voor het ZIP Codes is qua aard. De macro om postcodes te verwerken stappen door elke cel in de selectie, formatteert het als tekst, voegt een toonaangevende apostrof en pluggen in een leidende nullen. Het verschil is dat de macro moet ook goed voor gevallen waar er ofwel vijf cijfers of negen-cijferige postcodes.

Sub ZIP2Text ()
Dim c als Waaier
Application.ScreenUpdating = False
'Format geselecteerde cellen als tekst
Selection.NumberFormat = "@"
Voor Elke c In Selection
Als Links (c, 1) = "" "Dan
'Strip de apostrof, eventuele
c = Mid (c, 2, 99)
End If
Als Len (c) <= 5 Toen
c = "'" & Right ("00000" & c, 5)
Anders
c = "'" & Right ("00000" & c, 10)
End If
Volgende c
Application.ScreenUpdating = True
End Sub

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (2400) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel vindt u hier (Excel 2007 en later): Het voorbereiden van gegevens voor import in Access.