Data, data, data - ilman sitä tietokanta olisi melko hyödytön. Joten ei ole yllätys, että yksi most Usein kysyttyjä kysymyksiä tietojen saamisesta Access-taulukoihisi on - kuinka voin tehdä elämästäni helpompaa, kun minun on tuotava säännöllisesti paljon (ja paljon!) tiedostoja? Koska se on niin yleinen tehtävä, on tietysti useita tapoja kuorita kyseinen kissa, mutta tässä tarkastelemme vain yhtä - mielestäni helpoin - varsinkin jos teet tämän säännöllisesti tai jopa aikataulun mukainen aikataulu. Pieni suunnittelu (ja tarkoitan vähän!) Ja pieni VBA-taika ja sinulla on hyvä mennä - lue eteenpäin saadaksesi started…
Kaikkien Excel-tiedostojen tuominen kansioon

Ensinnäkin määritellään, mitä haluamme koodin tekevän:
"Haluamme tuoda kaikki tiedostot tietystä kansiosta olemassa olevaan taulukkoon - haluamme myös määrittää, onko tiedostoissa otsikkorivi vai ei"
Näyttää tarpeeksi yksinkertaiselta, joten katsotaanpa koodi tehdä tämä:
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
Tarkistetaan ongelmia ...

OK - ensin asiat ensin. Jotta koodi pysyisi käyttökelpoisena eri olosuhteissa, pyydämme polun nimeä (missä tiedostot on tallennettu), taulukon nimeä, johon haluat tuoda nämä tiedostot, ja onko kaikilla tämän kansion tiedostoilla otsikko vai ei (ts. näkyvätkö kenttien nimet laskentataulukon ensimmäisellä rivillä).
Huomaat, että tiedostoja hakeva koodin osa - Dir (polku & "\ *. Xls") - lisää yleismerkin ja tiedostopääte toimitettuun polkuun. Mainitsen tämän, koska koodin muuttaminen olisi erittäin helppoa, jos esimerkiksi halusit tuoda vain tiedostoja, jotka vastasivat tiettyä nimeämiskäytäntöä (esim. Kaikki tiedostot, joissa tiedostonimi on "tammikuu" tai "2017") ). Voit halutessasi jopa lisätä kyseisen suodattimen parametrina aliohjelmakutsuun.
Joka tapauksessa, jos tiedosto, joka vastaa annettuja ehtoja (mikä tahansa .xls-tiedosto kansiossa käyttää tässä tapauksessa), se yrittää tuoda kyseisen tiedoston välittömästi TransferSpreadsheet-komennolla.
Missä koodi vaihdetaan tarpeidesi mukaan ...
Tässä vaiheessa voit muuttaa koodia siten, että laskentataulukon tuonnin sijaan se tuo csv-tiedostoja (käyttäen "TransferText" -komentoa) jne.
Koodi silmukkaa sitten, kunnes kyseiseen kansioon ei ole enää tuotavia tiedostoja.
Se on pieni osa koodia, mutta sellaisen, jonka huomaat käyttävän yhä uudelleen, olen varma!
Tekijän esittely:
Mitchell Pond on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien korjata SQL-vioittuminen ja Excel-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com