Data, data, data – uten det ville en database vært ganske ubrukelig. Så det er ingen overraskelse at en av de most Ofte stilte spørsmål når det gjelder å få disse dataene inn i Access-tabellen(e) er – hvordan kan jeg gjøre livet mitt enklere når jeg regelmessig må importere mange (og mange!) filer? Siden det er en så vanlig oppgave, er det åpenbart en rekke måter å flå den aktuelle katten på, men her skal vi se på bare én – etter min mening den enkleste – spesielt hvis du gjør dette regelmessig, eller til og med planlagt tidsramme. Litt planlegging (og jeg mener litt!) og litt VBA-magi, så er du klar – les videre for å få started...
Importere alle Excel-filer i en mappe
For denne artikkelen skal vi se på import av en rekke Excel-filer i en gitt mappe, men du kan like gjerne importere csv-filer osv. – vi vil diskutere hvordan du endrer koden for å håndtere csv-filer snart.
Først, la oss definere hva vi vil at koden skal gjøre:
"Vi ønsker å importere alle filer fra en gitt mappe til en eksisterende tabell - vi ønsker også å spesifisere om filene har en overskriftslinje eller ikke"
Virker enkelt nok, så la oss se på koden for å gjøre dette:
Sub ImportfromPath(path As String, intoTable As String, hasHeader As Boolean) Dim fileName As String 'Søk gjennom mappen og importer hver fil filnavn = Dir(bane & "\*.xls") Mens filnavn <> "" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, intoTable, path & fileName, hasHeader 'sjekk om det er flere filer å importere filnavn = Dir() Wend End Sub
Ser etter problemer …
Før vi går inn på detaljene om hvordan denne koden fungerer, er det viktig å merke seg at det ikke er noen feilkontroll inkludert i koden ovenfor – dette er bevisst slik at koden holdes lett lesbar, men jeg vil sterkt anbefale at du legger til feilhåndteringskode til databasen din slik at du beholder sjansene for Access-database korrupsjon til et minimum!
OK – første ting først. For å holde koden så brukbar under forskjellige omstendigheter som mulig, ber vi om banenavnet (hvor filene er lagret), navnet på tabellen du vil importere disse filene til, og om filene i denne mappen alle har en overskrift eller ikke (dvs. vises feltnavnene på den første raden i regnearket).
Du vil legge merke til at delen av koden som søker etter filer – Dir(path & “\*.xls”) – legger til et jokertegn og en filtype til den angitte banen. Jeg nevner dette siden det ville være veldig enkelt å endre koden hvis du for eksempel bare ville importere filer som samsvarte med en bestemt navnekonvensjon (f.eks. alle filer som har "januar" eller "2017" som en del av filnavnet ). Du kan, hvis du vil, til og med legge til det filteret som en parameter til subrutineanropet.
Uansett, hvis en fil som samsvarer med de gitte kriteriene (en hvilken som helst ".xls"-fil i mappen som bruker i dette tilfellet), prøver den umiddelbart å importere den filen ved å bruke TransferSpreadsheet-kommandoen.
Hvor kan du endre koden for å passe dine behov...
Det er på dette tidspunktet du kan endre koden slik at den i stedet for å importere et regneark importerer csv-filer (ved hjelp av kommandoen "TransferText") osv.
Koden går så i loop til det ikke er flere filer å importere i den mappen.
Det er et lite stykke kode, men en som du vil finne deg selv å bruke om og om igjen, det er jeg sikker på!
Forfatterintroduksjon:
Mitchell Pond er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparere SQL-korrupsjon og excel-programvareprodukter for gjenoppretting. For mer informasjon besøk www.datanumen. Med
Wow, fantastisk bloggstruktur! Hvor lenge har du noen gang blogget?
du gjør det enkelt å drive blogg. Det totale blikket på nettstedet ditt er også fantastisk
innholdet! Du kan se lignende her sklep internetowy
Jeg ble anbefalt denne bloggen av kusinen min. Jeg er ikke sikker på om denne sost
er skrevet av ham da ingen andre vet så detaljert om vanskeligheten min.
Du er fantastisk! Takk! fordero.shop
Hei, jeg tror at jeg så at du besøkte bloggen min, så jeg kom for å "gi tilbake tjenesten". Jeg prøver å finne ting for å forbedre siden min! Jeg antar at det er greit å bruke noen av ideene dine!!