Der skal anvendes en vba rutine for at loope gennem filerne. Det hele beskrives lettest ved at vælge nogle konkrete navne.
1. Importering til midlertidig tabel, kaldet tmpimp, vha import guiden. Det er blot en enkelt csv fil der skal importeres med følgende formål: * Få lavet tabelstrukturen der kan importeres til. * Få gemt en import deklaration - kald den ligeledes tmpimp. Det kan være vigtigt med en import deklaration - ting som kommatal kan kræve at man angiver felttype. Det er de fjerneste afkroge af importguiden man her skal ned i!
2. check at det virker, ved i vba immediate vinduet at udføre noget der ligner: docmd.TransferText acImportDelim,"tmpimp","tmpimp","c:\csvmappen\minfil.csv",false Prøv med flere csv filer for at se om noget konflikter.
3. Lav den endelige tabel, kaldet csvimp, således: * kopier tmpimp til csvimp * open csvimp i design og tilsæt testfeltet: filnavn * tilsæt evt. et id felt af typen autonumber.
4. Kald følgende - bemærk at konkrete feltnavne specielt for din tabel måske skal anvendes - konstruer og test sql'en først som forespørsel i database vinduets forespørgsel fane.
Sub impcsvfiles() Dim fileN Const path = "c:\csvmappen\" fileN = Dir(path & "*.csv") While Len(fileN) CurrentDb.Execute "delete from tmpImp" DoCmd.TransferText acImportDelim, "tmpimp", "tmpimp", path & fileN, False CurrentDb.Execute "insert into csvimp select " & split(fileN, ".")(0) & " as filename,* from tmpimp" fileN = Dir() Wend End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.