Så här importerar du alla filer i en mapp till din åtkomsttabell

Data, data, data - utan den skulle en databas vara ganska värdelös. Så det är ingen överraskning att en av most vanliga frågor när det gäller att få den informationen till din Access-tabell (er) - hur kan jag göra mitt liv enklare när jag regelbundet måste importera massor (och massor!) av filer? Eftersom det är en så vanlig uppgift finns det uppenbarligen ett antal sätt att hudfärga just den katten, men här ska vi bara titta på en - enligt min mening det enklaste - speciellt om du gör det regelbundet eller till och med schemalagd tidsram. Lite planering (och jag menar lite!) Och lite VBA-magi så är det bra att gå - läs vidare för att få started ...

Importera alla Excel-filer i en mapp

Importera Excel-fil för åtkomstFör den här artikeln ska vi titta på att importera ett antal Excel-filer i en viss mapp, men du kan lika enkelt importera csv-filer etc - vi diskuterar hur man ändrar koden för att hantera csv-filer inom kort.

Låt oss först definiera vad vi vill att koden ska göra:

"Vi vill importera alla filer från en viss mapp till en befintlig tabell - vi vill också ange om filerna har en rubrikrad eller inte"

Verkar tillräckligt enkelt, så låt oss titta på koden för att göra detta:

Sub ImportfromPath(path As String, intoTable As String, hasHeader As Boolean)

Dim fileName As String

'Loop through the folder & import each file
fileName = Dir(path & "\*.xls")
While fileName <> ""
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, intoTable, path & fileName, hasHeader
   'check whether there are any more files to import
    fileName = Dir()
Wend

End Sub

Letar efter problem ...

Åtkomst till databaskorruptionInnan vi kommer in i detaljerna om hur den här koden fungerar är det viktigt att notera att det inte finns någon felkontroll i koden ovan - detta är avsiktligt så att koden hålls lätt läsbar men jag föreslår starkt att du lägger till felhanteringskod till din databas så att du behåller chanserna Åtkomst till databasskada till ett minimum!

OK - första saker först. För att hålla koden så användbar under olika omständigheter som möjligt ber vi om sökvägen (där filerna lagras), namnet på tabellen du vill importera dessa filer till och om filerna i den här mappen alla har en rubrik eller inte (dvs. visas fältnamnen på den första raden i kalkylbladet).

Du kommer att märka att den del av koden som söker efter filer - Dir (sökväg & "\ *. Xls") - lägger till ett jokertecken och filtillägg till den medföljande sökvägen. Jag nämner detta eftersom det skulle vara väldigt enkelt att ändra koden om du till exempel bara skulle vilja importera filer som matchade en viss namngivningskonvention (t.ex. alla filer som har "Januari" eller "2017" som en del av filnamnet ). Du kan, om du vill, till och med lägga till det filtret som en parameter i underrutinanropet.

Hur som helst, om en fil som matchar de angivna kriterierna (någon ”.xls” -fil i mappen som använder i detta fall), försöker den omedelbart importera den filen med kommandot TransferSpreadsheet.

Var ska du ändra koden så att den passar dina behov ...

Det är vid denna tidpunkt du kan ändra koden så att den istället för att importera ett kalkylark importerar csv-filer (med kommandot "TransferText") etc.

Koden slingras sedan tills det inte finns några fler filer att importera i den mappen.

Det är en liten bit kod, men en som du kommer att hitta om och om igen är jag säker på!

Författarintroduktion:

Mitchell Pond är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive reparera SQL-korruption och Excel-programvara för återställningsprogramvara. För mer information besök www.datanumen.com

Kommentarer är stängda.