Avatar billede erik_l Juniormester
24. december 2013 - 14:41 Der er 1 løsning

Opret navnet fra den importerede fil i tabellen i Access

Jeg har en stribe csv filer som jeg skal have importeret til access, alle filerne har samme struktur og forskellig filnavn.

jeg vil gerne have dem importeret så filnavnet fra csv filens navn kommer med i tabellen i access.

Er der en som kan hjælpe med det?

Glædelige jul
/Erik
Avatar billede bvirk Guru
25. december 2013 - 11:33 #1
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester