Data, data, data – kung wala ito, ang isang database ay magiging walang silbi. Kaya hindi nakakagulat na ang isa sa mga pinakamadalas itanong pagdating sa paglalagay ng data na iyon sa iyong Access table(s) ay – paano ko mapapadali ang buhay ko kung kailangan kong regular na mag-import ng maraming (at maraming!) file? Dahil ito ay isang karaniwang gawain, malinaw na maraming paraan para malutas ang partikular na problemang iyon, ngunit dito ay titingnan natin ang isa lamang – sa aking palagay ang pinakamadali – lalo na kung ginagawa mo ito sa isang regular, o kahit na naka-iskedyul na timeframe. Kaunting pagpaplano (at talagang kailangan ko!) at kaunting VBA magic at handa ka nang magsimula – basahin pa para makapagsimula…
Pag-import ng lahat ng mga file ng Excel sa isang folder
Para sa artikulong ito, titingnan namin ang pag-import ng isang bilang ng mga file ng Excel sa loob ng isang naibigay na folder, ngunit madali mo ring mai-import ang mga csv file atbp - tatalakayin namin kung paano baguhin ang code upang mahawakan ang mga file na csv sa ilang sandali.
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