Date, date, date – fără ele, o bază de date ar fi destul de inutilă. Așadar, nu este surprinzător faptul că una dintre cele mai frecvente întrebări atunci când vine vorba de introducerea acestor date în tabelul/tabelele Access este – cum îmi pot ușura viața când trebuie să import în mod regulat o mulțime (și o mulțime!) de fișiere? Deoarece este o sarcină atât de comună, există evident o serie de modalități de a depăși acel aspect, dar aici vom analiza doar una – în opinia mea, cea mai ușoară – mai ales dacă faceți acest lucru într-un interval de timp regulat sau chiar programat. Puțină planificare (și chiar spun puțină!) și puțină magie VBA și sunteți gata de plecare – citiți mai departe pentru a începe…
Importul tuturor fișierelor Excel dintr-un folder
Pentru acest articol, ne vom uita la importarea unui număr de fișiere Excel într-un folder dat, dar ați putea importa la fel de ușor fișiere csv etc. Vom discuta cum să schimbați codul pentru a gestiona fișierele csv în scurt timp.
În primul rând, să definim ce vrem să facă codul:
„Vrem să importăm toate fișierele dintr-un folder dat într-un tabel existent – vrem, de asemenea, să specificăm dacă fișierele au o linie de antet sau nu”
Pare destul de simplu, așa că să ne uităm la cod pentru a face acest lucru:
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
Se verifică probleme...

OK – primul lucru este mai întâi. Pentru a păstra codul cât mai utilizabil în diferite circumstanțe posibil, vă solicităm numele căii (unde sunt stocate fișierele), numele tabelului în care doriți să importați aceste fișiere și dacă fișierele din acest folder au toate un antet sau nu (adică numele câmpurilor apar pe primul rând al foii de calcul).
Veți observa că partea de cod care caută fișiere – Dir(cale & „\*.xls”) – adaugă un wildcard și o extensie de fișier la calea furnizată. Menționez acest lucru deoarece ar fi foarte ușor să modificați codul dacă, de exemplu, doriți să importați numai fișiere care corespund unei anumite convenții de denumire (de exemplu toate fișierele care au „ianuarie” sau „2017” ca parte a numelui fișierului ). Ați putea, dacă doriți, chiar să adăugați acel filtru ca parametru la apelul subrutinei.
Oricum, dacă un fișier care se potrivește cu criteriile date (orice fișier „.xls” din dosar folosind în acest caz), acesta încearcă imediat să importe acel fișier folosind comanda TransferSpreadsheet.
Unde să schimbați codul pentru a se potrivi nevoilor dvs....
În acest moment, puteți modifica codul astfel încât, în loc să importe o foaie de calcul, să importe fișiere csv (folosind comanda „TransferText”) etc.
Codul se face apoi în buclă până când nu mai există fișiere de importat în acel folder.
Este o bucată mică de cod, dar una pe care o veți găsi să-l folosiți din nou și din nou, sunt sigur!
Introducerea autorului:
Mitchell Pond este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv reparați corupția SQL și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com