Sådan importeres alle filer i en mappe til din adgangstabel

Data, data, data – uden det ville en database være temmelig ubrugelig. Så det er ikke overraskende, at et af de oftest stillede spørgsmål, når det kommer til at få data ind i din(e) Access-tabel(ler), er – hvordan kan jeg gøre mit liv lettere, når jeg regelmæssigt skal importere masser (og atter masser!) af filer? Da det er en så almindelig opgave, er der naturligvis en række måder at flå netop den kat på, men her vil vi se på kun én – efter min mening den nemmeste – især hvis du gør dette på en regelmæssig eller endda planlagt tidsramme. Lidt planlægning (og jeg mener lidt!) og lidt VBA-magi, og du er klar – læs videre for at komme i gang…

Import af alle Excel-filer i en mappe

Importer Excel-fil til adgangTil denne artikel vil vi se på at importere et antal Excel-filer inden for en given mappe, men du kan lige så nemt importere csv-filer osv. - Vi diskuterer, hvordan du ændrer koden til at håndtere csv-filer snart.

Lad os først definere, hvad vi vil have koden til at gøre:

"Vi vil importere alle filer fra en given mappe til en eksisterende tabel - vi vil også specificere, om filerne har en overskriftslinje eller ej"

Virker enkel nok, så lad os se på koden for at gøre dette:

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

Kontrollerer for problemer ...

Adgang til databasekorruptionFør vi går i detaljer om, hvordan denne kode fungerer, er det vigtigt at bemærke, at der ikke er nogen fejlkontrol inkluderet i koden ovenfor - dette er bevidst, så koden holdes let læselig, men jeg vil kraftigt foreslå, at du tilføjer fejlhåndteringskode til din database, så du bevarer chancerne for Få adgang til databasekorruption til et minimum!

OK - første ting først. For at holde koden så anvendelig under forskellige omstændigheder som muligt beder vi om stienavnet (hvor filerne er gemt), navnet på den tabel, du vil importere disse filer til, og om filerne i denne mappe alle har en header eller ej (dvs. vises feltnavne i første række i regnearket).

Du bemærker, at den del af koden, der søger efter filer - Dir (sti & "\ *. Xls") - tilføjer et jokertegn og filtypenavn til den medfølgende sti. Jeg nævner dette, da det ville være meget let at ændre koden, hvis du for eksempel kun ville importere filer, der matchede en bestemt navngivningskonvention (f.eks. Alle filer, der har "januar" eller "2017" som en del af filnavnet ). Du kunne, hvis du ville, endda tilføje dette filter som en parameter til underrutinen.

Under alle omstændigheder, hvis en fil, der matcher de givne kriterier (en hvilken som helst “.xls” -fil i mappen ved hjælp af i dette tilfælde), forsøger den straks at importere den fil ved hjælp af kommandoen TransferSpreadsheet.

Hvor skal du ændre koden, så den passer til dine behov ...

Det er på dette tidspunkt, du kan ændre koden, så den i stedet for at importere et regneark importerer csv-filer (ved hjælp af kommandoen "TransferText" osv.)

Koden sløjfer derefter, indtil der ikke er flere filer, der skal importeres i den mappe.

Det er et lille stykke kode, men en, som du finder ud af, at du bruger igen og igen, er jeg sikker på!

Forfatter Introduktion:

Mitchell Pond er en datagendannelsesekspert i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder reparere SQL-korruption og excel-genopretningssoftwareprodukter. For mere information besøg www.datanumen.com

Kommentarer er lukket.