Importare file testo docmd.transfer errori di importazione

di il
13 risposte

Importare file testo docmd.transfer errori di importazione

Buonpomeriggio a tutti, nuovissimo del forum e con conoscenza base di access , mi sono cimentato nel voler importare file di testo e creare una tabella con VBA
dopo aver importato il file.txt con docmd.transfertext , mi appare una tabella con gli errori di importazione.
Analizzando le righe ho dedotto che il problema nasce quando ci sono dei campi vuoti

come potrei fare
grazie per l'aiuto

13 Risposte

  • Re: Importare file testo docmd.transfer errori di importazione

    domenico19612 ha scritto:


    ... importare file di testo e creare una tabella con VBA
    dopo aver importato il file.txt con docmd.transfertext ,
    ...
    Analizzando le righe ho dedotto che il problema nasce quando ci sono dei campi vuoti
    Scrivi l'istruzione completa, sono importanti anche gli altri parametri per capire come fai l'importazione.
    I campi "vuoti" (lasciami l'uso delle virgolette per ora) di che tipo sono? Hanno la proprietà "Richiesto" impostata a sì? se tipo testo "Consenti lunghezza zero"?
  • Re: Importare file testo docmd.transfer errori di importazione

    Docmdtransfertext acimportfixed, "fileguida" , "filemetel", "listino.txt"

    questa è una riga di listino.txt
    ETLSH6801A 8033712908823SHARK 6801 GIUNTO GEL IP68 1 KV + CONN 00001000010000100010050000000000000000003247000001EURPCE03201701091 BTSH 2861



    questo e fileguida
    Nome campo Tipo dati Inizio Larghezza Indicizzato Salta
    sigla Testo 1 3 No 0
    prodotto Testo 4 16 No 0
    ean Prdoppia 20 13 No 0
    descrizioneTesto 33 43 No 0
    qcart Intero 76 5 No 0
    qmu Intero 81 5 No 0
    qmin Intero 86 5 No 0
    qmax Intero 91 6 No 0
    lead Testo 97 1 No 0
    prgro Intero 98 11 No 0
    prprpub Intero 109 11 No 0
    molt Intero 120 6 No 0
    valuta Testo 126 3 No 0
    um Testo 129 3 No 0
    procomp Intero 132 1 No 0
    stato Testo 133 1 No 0
    dat Testo 134 8 No 0
    famsco Testo 142 18 No 0
    famstat Testo 160 18 No 0
  • Re: Importare file testo docmd.transfer errori di importazione

    Phil grazie per l'interessamento...........
    nella tabella filemetel la proprietà "richiesto" l'ho impostata a no
    gli errori me li da sui campi prprpub che come vedi è numerico e qmax anch'esso numerico
  • Re: Importare file testo docmd.transfer errori di importazione

    domenico19612 ha scritto:


    Docmdtransfertext acimportfixed, "fileguida" , "filemetel", "listino.txt"
    questo e fileguida
    ...
    queste sono le specifiche di importazione che usi. Ok. A me interessavano i campi della tabella. (ho visto che nel frattempo hai scritto qualcosa, bene)

    Il file txt ha contenuto diverso nella varie righe? Se quella che hai pubblicato è una riga unica, le specifiche di importazione sono "sbagliate". Ad esempio come puoi trattare come campo [ean] precisione doppia questa porzione di riga (dalla posizione 20 per 13 caratteri)?
    08823SHARK 68

    E' numero e testo, non può essere numerico precisione doppia

    Fai un esempio (una riga o un estratto della riga) che ti dà errore, dove vedi che i campi sono vuoti
  • Re: Importare file testo docmd.transfer errori di importazione

    Phil infatti il problema stà proprio nel trattamento dei campi
    sbattendoci un pò la testa ho notato che campi vuoti nel file listino.txt non ce ne sono e dove mi dava errore nella riga ci sono i caratteri 99999
    ho modificato le caratteristiche dei campi che mi davano errore da numerico a doppia precisione e funziona tutto perfettamente
    ora modifico anche il campo ean

    grazie per l'interessamento
  • Re: Importare file testo docmd.transfer errori di importazione

    Ora però ho un altro problema..........potrei,tramite codice discriminare la prima riga. di "listino.txt"..?
    perchè la prima riga è diversa da tutte le altre e i campi non corrispondono .alle righe successive....(in pratica è una riga dove descrive il listino....marca numero anno)
    la mia idea sarebbe di estrarre questa riga è salvarla in una tabella separata che si chiamerebbe "filemetel-indice " e che, alla fine del progetto conterrebbe tutte le prime righe, di tutti i file "listino.txt" che andrei ad estrarre nella tabella "filemetel"
  • Re: Importare file testo docmd.transfer errori di importazione

    domenico19612 ha scritto:


    ...sbattendoci un pò la testa ho notato che campi vuoti nel file listino.txt non ce ne sono
    Vedi che avevo ragione ad usare campi vuoti con le virgolette?
    ho modificato le caratteristiche dei campi che mi davano errore da numerico a doppia precisione
    Occhio che per il campo dmax forse ti basta un intero lungo.
    e dove mi dava errore nella riga ci sono i caratteri 99999
    di cui sai solo tu il significato. E' ovvio che se cercavi di importare in un campo numerico intero il numero 99999 andava in errore perché i valori consentiti sono da -32,768 a +32,767
    Come pure l'altro campo che aveva addirittura lunghezza 11, effettivamente lì nemmeno l'intero lungo basta.
    Guarda qua le caratteristiche dei vari campi numerici Set the field size anche se queste informazioni le trovi praticamente dappertutto.
  • Re: Importare file testo docmd.transfer errori di importazione

    domenico19612 ha scritto:


    Ora però ho un altro problema..........potrei,tramite codice discriminare la prima riga. di "listino.txt"..?
    perchè la prima riga è diversa da tutte le altre ...
    Eccola! era qua che ti volevo, mi sembrava impossibile che fosse tutto "normale".
    Solo la prima riga è diversa? In questo momento non ho una risposta "pronta" perché non mi è mai capitato (di affrontarla o di leggerla come procedura). Il semplice DoCmd.TransferText non basta (forse è addirittura da escludere).
    Devi tenere collegate le informazioni della prima riga con quelle del resto del file?
    Se la cosa si fa "troppo complicata" forse è meglio aprire un thread separato perché qui non si tratta più e solo di errori nell'importazione del testo con DoCmd.TransferText ma di studiare un approccio diverso.
  • Re: Importare file testo docmd.transfer errori di importazione

    Si solo la prima riga è diversa ...........

    un alternativa per semplificare che mi andrebbe bene sarebbe escluderla dall'importazione , cioè cominciare a leggere ed importare quindi dal secondo rigo
  • Re: Importare file testo docmd.transfer errori di importazione

    Se la prima riga contiene le intestazioni di colonna si può indicare nella procedura di importazione:
    https://support.office.com/it-it/article/Importare-dati-da-un-file-di-testo-51965b9e-6fb9-41e7-bcb9-c5c098172582
    https://support.office.com/it-it/article/Importare-o-collegare-dati-di-un-file-di-testo-d6973101-9547-4315-a8f8-02911b549306?ui=it-IT&rs=it-IT&ad=IT&fromAR=1
    http://www.comefarea.it/produttivita/office2010/access2010/importare-dati-esterni/
  • Re: Importare file testo docmd.transfer errori di importazione

    domenico19612 ha scritto:


    un alternativa per semplificare che mi andrebbe bene sarebbe escluderla dall'importazione , cioè cominciare a leggere ed importare quindi dal secondo rigo
    Alla luce di questo mi accodo all'ultimo link suggerito da willy55 e rilancio con questo ** , rimarcando che abbandonando TransferText conviene anche aprire un nuovo thread se ci sono problemi.
  • Re: Importare file testo docmd.transfer errori di importazione

    Grazie a tutti ho risolto utilizzando i suggerimenti e qualche ora di mancato sonno...............
  • Re: Importare file testo docmd.transfer errori di importazione

    Presenta, magari, la tua soluzione e/o codice utilizzato in modo che un futuro lettore non perda il sonno.
Devi accedere o registrarti per scrivere nel forum
13 risposte