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
Til 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 ...

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