Convertire txt in tabella mdb

di Anonimizzato14043 il
4 risposte
Salve sono un programmatore amatoriale e vorrei trasferire dei dati contenuti in un file txt in una tabella mdb.
I dati contenuti nel txt non sono riconoscibili da un separatore ma conosco solo il tipo di tracciato record.
Vorrei sapere se qualcuno sa darmi delle indicazioni su come fare o dove posso trovare del codice che possa aiutarmi.
Ciao e grazie

4 Risposte

  • Nell' "importazione guidata testo" devi selezionare la voce "a larghezza fissa" (che è l'alternativa a "delimitato") e vai avanti; nella schermata successiva dovrai suddividere manualmente i campi (segui il tracciato che hai).
    Prova a vedere se così riesci ad importare. Buon lavoro!
  • Io vorrei creare un programmino con vb6, altrimenti avrei utilizzato excel e poi inportato nella tabella da access ma vorrei evitare questi passaggi.
    Non sai dove posso trovare esempi di codice?
    Grazie
    Ho provato ad usare queste righe di comando che però utilizzano il delimitatore ";" ma mi crea un altro file txt con lo stesso nome e vuoto.

    file da acquisire (test.txt) con 4 colonne e tabella (tbl) con 4 campi (C1,C2,C3,C4)del file test.mdb:

    Dim cn,cmd,fso,txt,r,aCampo

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.OpenTextFile("c:\test.txt")

    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb"

    Set cmd = CreateObject("ADODB.Command")
    With cmd
    .CommandText = "PARAMETERS pC1 Text,pC2 Text,pC3 Text,pC4 Text; INSERT INTO tbl (C1,C2,C3,C4) VALUES(pC1,pC2,pC3,pC4)"
    .CommandType = 1
    Set .ActiveConnection = cn
    .Parameters.Refresh
    End With

    r = 0
    With txt
    While not .AtEndOfStream
    r = r+1
    aCampo = Split(txt.ReadLine(),";")
    With cmd
    .Parameters("pC1").Value = aCampo(0)
    .Parameters("pC2").Value = aCampo(1)
    .Parameters("pC3").Value = aCampo(2)
    .Parameters("pC4").Value = aCampo(3)
    .Execute
    End With
    Wend
    .Close
    End With

    Set txt = Nothing
    Set fso = Nothing

    Set cmd = Nothing
    cn.Close
    Set cn = Nothing

    MsgBox "Il file è stato acquisito (" & CStr(r) & " righe totali)"
  • Qui c'è un esempio da cui potresti partire http://www.utteraccess.com/forum/Import-txt-file-programm-t1058575.html
    Il primo step potrebbe essere quello di caricare tutte le righe di testo (lette in strFullLine) dentro una tabella che ha un solo campo testo. Così vedi se leggi tutto e se riesci a scrivere su una tabella.
    Fatto questo, il secondo step potrebbe essere quello di usare gli operatori Left()/Mid()... per estrapolare i singoli campi da strFullLine e a quel punto scrivere sulla tabella vera e propria.
  • Ok proverò.
    Grazie mille!!!!!!!!!!!!!!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte