importare CSV in Access



  • importare CSV in Access
    di gugluca (utente non iscritto) data: 30/10/2012 17:51:51

    Ciao a tutti
    avrei la necessità di generare una macro che mi permetta di importare un file CSV (con delimitazione dei campi con ';') in Access.
    Che istruzioni VBA devo inserire?
    Grazie per l'aiuto

    Luca



  • di Vecchio Frac data: 30/10/2012 18:16:27

    Puoi usare docmd.TransferText ma pare che servano le specifiche di importazione per delimitatori diversi dalla virgola (sto approfondendo mentre ti rispondo).
    Oppure leggere il file con Open file For Input e parsare riga per riga utilizzando Split(riga, ";") per ricavare i singoli campi.

    Il lavoro va svolto in Access o potresti farlo anche in Excel?





  • di gugluca (utente non iscritto) data: 30/10/2012 18:30:57

    Innanzitutto grazie per la risposta..
    Ho provato l'istruzione che riporto di sotto, ma non funziona, in quanto non mi separa i campi.
    TABELLA è la tabella di access nella quale voglio inserire i dati.
    L'istruzione, ahimè, devo eseguirla in Access.

    Grazie ancora

    Luca


     
    DoCmd.TransferText acImportDelim, "", "TABELLA", _
        "c:file.CSV", True, ""



  • di Vecchio Frac data: 30/10/2012 18:36:00

    Sì, confermo che servono le specifiche di importazione.
    I passi da seguire sono:
    - apri un file di Access pulito
    - File --> Carica dati esterni --> Importa
    - in Tipo Files seleziona "Text files (*.txt, *.csv, *.tab; *.asc)"
    - portati nella cartella del tuo .csv e selezionalo, quindi Importa (o doppio clic)
    - clicca su pulsante Avanzate...
    - imposta il formato file su: delimitato e il delimitatore campo su: ; (punto e virgola)
    - clicca su pulsante Salva con nome
    - inserisci un nome che ti ricorderai (es. "CSV semicolon" che sta per "punto e virgola", ma va bene anche "pippo")
    - clicca su Annulla su tutte le finestre residue
    - ora sei di nuovo in Access pulito

    E ora facciamo un test:
    - in Access
    - premi Alt-F11 per accedere all'area editor di codice e Ctrl-G per aprire una finestra immediata
    - copia incolla questa riga di prova:
    docmd.TransferText acImportdelim , "CSV semicolon" ,"test", currentproject.Path & "my_text_file.csv"

    Ti troverai la tabella "test" con i tutit i tuoi dati suddivisi in corrispondenza del punto e virgola.
    Ovviamente, e lo dico anche se è banale, il file .csv deve trovarsi insieme al file Access di prova appena creato e nella riga di codice devi inserire il vero nome del file .csv... Altrimenti da "currentproject.path in avanti devi specificare tu il percorso corretto e il nome del file .csv da cui pescare i dati).

    Prova e fai sapere :)






  • di gugluca (utente non iscritto) data: 30/10/2012 18:54:10

    Spettacolo!
    Non ci avevo pensato..
    Veramente utile!

    Grazie ancora per tutto

    Buona serata

    Luca