DoCmd.TransferText errore runtime 3001

di il
2 risposte

DoCmd.TransferText errore runtime 3001

Salve di nuovo a tutti, torno a scrivere in quanto mi sono bloccato nuovamente su un altro punto del mio lavoro.


Private Sub Command0_Click()
Dim dba As DAO.Database
Dim codice As Variant
Dim mioform1 As Form
Dim percfile As String
Dim estensione As String
Dim dati As String
Dim processi As String
Dim percdati As String
Dim percprocessi As String
Set mioform1 = Forms![msc_carica_dati]
Set dba = CurrentDb
codice = mioform1![Testo0]
percfile = "T:\input\"
estensione = ".txt"
dati = "_prova"
processi = "_processi"
percdati = percfile & codice & dati & estensione
percprocessi = percfile & codice & processi & estensione

DoCmd.TransferText acImportDelim, "xxx", "tbl_gestione_prodotto", percdati, False, ""

End Sub

Quando tenta di eseguire il DoCmd.TransferTex mi torna l'errore runtime 3001 argomento non valido.
Ho capito che si riferisce al nome del file specifiche "xxx", ma questo esiste e quando lo eseguo dalle specifiche di importazione salvate funziona senza problemi. Ho provato anche creando la macro ma mi torna sempre lo stesso errore.
Questa procedura l'ho già usata molte volte, ora non capisco perchè non funziona come dovrebbe.
Premetto che sto riscrivendo il gestionale da me creato 7 anni or sono per l'azienda dove lavoro per migliorarlo e le tabelle sono le stesse che sono presenti sul databese attualmente in uso (quindi con i medesimi campi e valori impostati).
Grazie per l'aiuto.

2 Risposte

  • Re: DoCmd.TransferText errore runtime 3001

    ash_79 ha scritto:


    ..
    
    
    Private Sub Command0_Click()
    ..
    Dim codice As Variant
    ...
    codice = mioform1![Testo0]
    percfile = "T:\input\"
    estensione = ".txt"
    dati = "_prova"
    processi = "_processi"
    percdati = percfile & codice & dati & estensione
    percprocessi = percfile & codice & processi & estensione
    
    DoCmd.TransferText acImportDelim, "xxx", "tbl_gestione_prodotto", percdati, False, ""
    
    Quando tenta di eseguire il DoCmd.TransferTex mi torna l'errore runtime 3001 argomento non valido.
    ...
    Come da guida , partiamo da quello che c'è dopo "False": sono tutti parametri Optional, quindi è inutile mettere la virgola e i due doppiapici senza niente dentro.
    Ammesso (ma non concesso) che il nome delle specifiche di importazione sia giusto e che non ci siano stati "problemi" di conversione se sei passato da una versione ad un'altra di Access o addirittura un nuovo formato del db (magari da mdb ad accdb), punterei l'attenzione sulla variabile "Codice" che hai dichiarato Variant che può essere Null, in base al contenuto di Testo0.
    Quando attribuisci il valore a percdati usando & l'eventuale Null non si propaga ma il contenuto della variabile che ne risulta è "corretto"?
    
    percdati = percfile & codice & dati & estensione
    'con codice = Phil01
    percdati = "T:\input\Phil01_prova.txt"
    'con codice Null
    percdati = "T:\input\_prova.txt"
    E' una cosa "normale", voluta?
    Visto che Codice va a costituire il nome del file, c'è l'eventualità che contenga caratteri vietati nel nome di un file?
    A titolo quasi di curiosità: perché dichiari variabili che non usi? c'è dell'altro che ci sfugge?
  • Re: DoCmd.TransferText errore runtime 3001

    Nessun cambio di versione di access, uso sempre la 2007 (sia quando ho creato il primo database 7 anni fa che oggi per riscriverlo) e anche la stessa estensione .accdb.
    Detto questo metto il link all'immagine nella quale si vede il corretto funzionamento del valore impostato nelle varie variabili.
    Ripeto: la base è la stessa che ho usato 7 anni fa e continua a funzionare ad oggi.

    [img]
    https://drive.google.com/open?id=0B99bsT5XtNwkYXZQRWNVSjZYVU0
    [/img]

    Ammettiamo (e non concediamo) che il nome delle specifiche sia corretto (altra immagine esplicativa)
    [img]
    https://drive.google.com/open?id=0B99bsT5XtNwkVEUzUFJrdVh5Yzg
    [/img]

    Il valore non sarà mai nullo della variabile codice, in quanto per le prove lo inserisco io a mano, poi nella versione finale eseguo una serie di controlli per evitare che ciò accada.
    Nessun valore "strano" o non consentito, in quanto la variabile codice è sempre un numero di 7 cifre.
Devi accedere o registrarti per scrivere nel forum
2 risposte