Ang data, data, data - kung wala ito isang database ay magiging walang silbi. Kaya't hindi nakakagulat na ang isa sa mga most mga madalas itanong pagdating sa pagkuha ng data na iyon sa iyong (mga) talahanayan ng Access ay - paano ko mapapadali ang aking buhay kung kailangan kong regular na mag-import ng maraming (at maraming!) ng mga file? Dahil ito ay isang karaniwang gawain, malinaw naman maraming mga paraan upang mapayat ang partikular na pusa, ngunit dito titingnan namin ang isa lamang - sa palagay ko ang pinakamadali - lalo na kung ginagawa mo ito sa isang regular, o kahit na nakaiskedyul na timeframe. Isang maliit na pagpaplano (at ang ibig kong sabihin ay kaunti!) At isang maliit na mahika ng VBA at magiging mabuti kang pumunta - basahin para makakuha ng started…
Pag-import ng lahat ng mga file ng Excel sa isang folder

Una, tukuyin natin kung ano ang nais nating gawin ng code:
"Gusto naming i-import ang lahat ng mga file mula sa isang naibigay na folder sa isang mayroon nang talahanayan - nais din naming tukuyin kung ang mga file ay may isang linya ng header o hindi"
Mukhang sapat na simple, kaya't tingnan natin ang code upang magawa ito:
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
Sinusuri ang mga problema ...

OK - una muna. Upang mapanatili ang code na magagamit sa iba't ibang mga pangyayari hangga't maaari hinihiling namin ang pangalan ng path (kung saan nakaimbak ang mga file), ang pangalan ng talahanayan na nais mong i-import ang mga file na ito, at kung ang mga file sa folder na ito lahat ay mayroong header o hindi (ibig sabihin, lilitaw ang mga pangalan ng patlang sa unang hilera ng spreadsheet).
Mapapansin mo na ang bahagi ng code na naghahanap ng mga file - Dir (path at "\ *. Xls") - ay nagdagdag ng isang wildcard at extension ng file sa naibigay na path. Nabanggit ko ito sapagkat napakadaling baguhin ang code kung, halimbawa, nais mong i-import lamang ang mga file na tumugma sa isang partikular na kombensyon sa pagpapangalan (hal. Lahat ng mga file na may "Enero", o "2017" bilang bahagi ng pangalan ng file ). Maaari mong, kung nais mong, idagdag pa ang filter na iyon bilang isang parameter sa subroutine na tawag.
Gayunpaman, kung ang isang file na tumutugma sa ibinigay na pamantayan (anumang ".xls" na file sa folder gamit ang sa kasong ito), agad nitong tinatangka na i-import ang file na iyon gamit ang utos ng TransferS nyebarsheet.
Kung saan babaguhin ang code upang umangkop sa iyong mga pangangailangan…
Sa puntong ito na maaari mong baguhin ang code upang sa halip na mag-import ng isang spreadsheet, ini-import nito ang mga file ng csv (gamit ang "TransferText" na utos) atbp
Mag-loop ang code pagkatapos ay walang karagdagang mga file na mai-import sa folder na iyon.
Ito ay isang maliit na piraso ng code, ngunit ang isa na mahahanap mo ang iyong sarili na ginagamit nang paulit-ulit sigurado ako!
Panimula ng May-akda:
Ang Mitchell Pond ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang katiwalian ng SQL at excel mga produkto ng pagbawi ng software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa