Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
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.
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!