Ciao a tutti!
Devo importare tramite VBA nel mio Access 2007 una serie di file .txt con campi a raghezza fissa. Sto provando a farlo con un singolo file: creo con VBA un file 'schema.ini' contenente le informazioni per generare la tabella poi eseguo la seguente istruzione:
DoCmd.TransferText acImportFixed, "C:\importazione\schema.ini", "t001", "C:\importazione\001.txt"
ma mi da il seguente errore:
Errore di run-time '3625':
Specifica file di testo ' C:importazione.ini ' non esiste. Impossibile importare mediante la specifica.
Il metodo ha cancellato tutti gli slash ("") dal path.
Allora ho provato a usare il la seguente istruzione che sfrutta DAO:
CurrentDb.Execute "SELECT * INTO NewContact FROM [Text;FMT=Delimited;HDR=Yes;DATABASE=C:\importazione;].[001#txt];", _
dbFailOnError
ma anche questa ha un problema: se al posto di 'Delimited' metto 'Fixed' ottengo un errore:
"errore di run-time '3000' - errore riservato, non ci sono specifiche per questo errore"
Se lascio 'Delimited' ovviamente non ottengo ciò che voglio, la tabella importata ha una sola colonna mentre dovrebbe averne due.
Quello che mi impensierisce ulteriormente è che non riesco a fare in modo che la colonna importata abbia il nome che voglio. La prima riga del file di testo 001.txt non contiene i nomi delle colonne, questi sono contenuti nello schema, ma se metto 'HDR=No'
nella stringa sql ottengo soltanto che la colonna si chiami genericamente 'F1' , nonostante nello schema (.ini) i nomi delle colonne siano adeguatamente specificati.
Riporto anche lo schema:
[t001]
ColNameHeader = False
CharacterSet = ANSI
Format = Fixed Length
Col0=record-code Char Width 3
Col1=copyright Char Width 50
Mi resta solo la strada di aprire il file di testo, scorrerlo riga per riga, e fare un inserimento per ogni riga. Ma immagino che sia un metodo molto poco raccomandabile in termini di prestazioni.
Potreste aiutarmi a cavarci gli zampetti?
Grazie,
Pileggi