Evitare di salvare tabella errori

di il
11 risposte

Evitare di salvare tabella errori

Buon pomeriggio,
scusate se disturbo per una richiesta sicuramente banale per voi esperti. Ho questo problema nell'importare dati da un foglio excel:
avendo volutamente impostato la proprietà di un campo in "duplicati non ammessi" ogni qualvolta che eseguo la query di accodamento access mi crea la tabella errori di importazione per tutti i records già presenti e la aggiunge alle altre tabelle del progetto. Come potrei fare per non far salvare questa tabella oppure salvarla fuori dal progetto?
Grazie.

11 Risposte

  • Re: Evitare di salvare tabella errori

    Gestisci da codice
  • Re: Evitare di salvare tabella errori

    E' proprio quello che vorrei fare, da codice sono riuscito solo a non visualizzare il messaggio. Lo so che non è corretto avere la cosiddetta "pappa pronta" ma non sono riuscito a trovare nulla in rete. Mi potresti dare qualche indicazione in più?
    Grazie.
  • Re: Evitare di salvare tabella errori

    M_Prince ha scritto:


    E' proprio quello che vorrei fare, da codice sono riuscito solo a non visualizzare il messaggio. Lo so che non è corretto avere la cosiddetta "pappa pronta" ma non sono riuscito a trovare nulla in rete. Mi potresti dare qualche indicazione in più?
    Grazie.
    Salve,
    per l'eliminazione della tabella puoi utilizzare il comando elimina oggetto con le macro, che tradotto in VBA è:
    DoCmd.DeleteObject acTable, "NomeDellaTuaTabella"
    Il problema del comando è che bisogna, prima, verificare se la tua tabella esiste altrimenti ti darà un errore quando cerchi di eliminarla la 2° volta o quando la TabErrori non è stata creata per niente.
    Non so a che livello sei con il codice ma dai un'occhiata a questo link:

    Ti può essere utile per altro.
    Saluti
  • Re: Evitare di salvare tabella errori

    Non serve controllare se la tabella esiste... basta sfruttare proprio la gestione errori è il metodo migliore... si cancella e se da errore si esce.

    Sono tuttavia sempre molto scettico su queste esigenze... magari basta adattare la specifica di impostazione...?
  • Re: Evitare di salvare tabella errori

    Grazie Gianni e Alex per i suggerimenti.
    Seguendo il consiglio di Gianni potrei fare in modo che ci sia sempre un record doppio in modo che access crei sempre la tabella oppure, se ci riesco, a controllare il tutto tramite la gestione errori così come suggerito da Alex, anche se ho molti dubbi visto le mie scarse conoscenze. Pensavo fosse più semplice....magari bastava inserire un'istruzione come "DoCmd.SetWarnings False" per evitare il messaggio. Grazie comunque.
    Alex cosa intendi per "...magari basta adattare la specifica di impostazione..."
  • Re: Evitare di salvare tabella errori

    @Alex ha scritto:


    Non serve controllare se la tabella esiste... basta sfruttare proprio la gestione errori è il metodo migliore... si cancella e se da errore si esce.

    Sono tuttavia sempre molto scettico su queste esigenze... magari basta adattare la specifica di impostazione...?
    Concordo pienamente ma quando le notizie che ricevi sul problema sono Zero gioco forza sei limitato nelle risposte.
  • Re: Evitare di salvare tabella errori

    M_Prince ha scritto:


    "DoCmd.SetWarnings False" per evitare il messaggio. Grazie comunque.
    No, non funziona
    [/quote]
    Alex cosa intendi per "...magari basta adattare la specifica di impostazione..."
    [/quote]
    Vuol dire che stiamo suggerendo al "Buio" perchè non hai postato il tuo codice.
  • Re: Evitare di salvare tabella errori

    Buongiorno Gianni,
    il codice, che modificato modificato in base alle tue indicazioni funziona benissimo, è il seguente:

    Private Sub Comando12_Click()
    Dim PercFile As String
    If MsgBox("Importazione fatture pervenute - Confermi l'importazione?", vbYesNo) = vbYes Then
    PercFile = CurrentProject.Path
    DoCmd.SetWarnings False
    DoCmd.TransferSpreadsheet acImport, , "TabFatture", (PercFile & "\FatPervenute.xlsm"), True
    DoCmd.DeleteObject acTable, "'Fatture da Importare$'_ErroriImportazione"
    DoCmd.SetWarnings True
    MsgBox ("Importazione dati effettuata")
    DoCmd.Close
    End If
    End Sub
  • Re: Evitare di salvare tabella errori

    Problema risolto grazie ai suggerimenti di Gianni e Alex, anche se avrei preferito che la tabella errori non venisse generata/salvata.
    questo il codice definitivo:
    Private Sub Comando12_Click()
    On Error GoTo Errore
    Dim PercFile As String
    If MsgBox("Importazione fatture pervenute - Confermi l'importazione?", vbYesNo) = vbYes Then
    PercFile = CurrentProject.Path
    DoCmd.SetWarnings False
    DoCmd.TransferSpreadsheet acImport, , "TabFatture", (PercFile & "\FatPervenute.xlsm"), True 'importa i dati dal file excel
    DoCmd.DeleteObject acTable, "'Fatture da Importare$'_ErroriImportazione"
    DoCmd.SetWarnings True
    MsgBox ("Importazione dati effettuata")
    DoCmd.Close
    End If
    Exit_Errore:
    Exit Sub

    Errore:
    Resume Exit_Errore

    End Sub

    Grazie ad Alex ho imparato a gestire gli errori
  • Re: Evitare di salvare tabella errori

    Mah,
    DoCmd.SetWarnings False e
    DoCmd.SetWarnings True
    non servono a gestire l'errore di cui ho parlato io, che riguarda l'eventualità che la TabErrori non venga generata
    in questo caso viene generato l'errore 7874 che va gestito.
    Saluti
  • Re: Evitare di salvare tabella errori

    Gianni55 ha scritto:


    ....
    Alex cosa intendi per "...magari basta adattare la specifica di impostazione..."
    Non vorrei che definendo una adeguata Specifica di Importazione, l'errore sparisse... diventerebbe la regola e non l'eccezione, ma dovrei provare...
Devi accedere o registrarti per scrivere nel forum
11 risposte