Sommario
    Riparazione database Access

    Come risolvere l’errore 3022 di Access Database “Le modifiche richieste alla tabella non hanno avuto successo”?


    Sommario

      Riassunto: Questo blog illustra le diverse situazioni e le possibili cause che possono provocare l'errore 3022 del database di Access. Vengono inoltre illustrate le soluzioni per risolvere l'errore 3022.

      L’errore 3022 di Access “Le modifiche richieste alla tabella non sono andate a buon fine” può verificarsi in una di queste situazioni:

      • Quando si tenta di inserire un nuovo record in una tabella esistente con un campo “Autonumero”, è possibile che il campo “Autonumero” non sia stato inserito.
      • Creare un modulo o un rapporto
      • Durante l’accesso a un file di database memorizzato su una condivisione di rete
      Suggerimento! Se si desidera ripristinare rapidamente il database di Access inaccessibile (.ACCDB/.MDB) senza perdita di dati, utilizzare il software Stellar Repair for Access. Il software aiuta a riparare il file di database e a recuperare tutti i suoi contenuti senza alcuna modifica. Scaricate lo strumento di riparazione di Access dal link sottostante per verificarne la funzionalità.

      Si tratta di un errore di runtime di Microsoft Access che viene segnalato con il seguente messaggio:

      Figura 1 - Errore 3022 di Microsoft Access

      Figura 1 – Errore 3022 di Microsoft Access

      Le possibili cause dell’errore di accesso 3022 e le relative soluzioni

      Di seguito sono riportate le possibili cause dell’errore e le relative soluzioni:

      Causa 1 – Il set di specifiche è corrotto

      Secondo Microsoft, l’errore 3022 di Access può verificarsi a causa di un set di specifiche danneggiato.

      Soluzione – Compattare il set di specifiche

      Provate a compattare il set di specifiche corrente del vostro database Access. Se la compattazione riesce, ma si continua a ricevere l’errore 3022 di Access all’apertura di un componente di report, esportate il componente in un nuovo set di specifiche o ricreatelo. Se invece il processo di compattazione non riesce, provate a riparare il file del database.

      Causa 2 – Problema con il database di Access

      Il database di Access potrebbe comportarsi in modo diverso a causa della corruzione della tabella.

      Soluzione – Compattare e riparare il database

      L’esecuzione di un’operazione di compattazione e riparazione del database può aiutare a risolvere il problema. Seguite questi passaggi:

      • Aprite il vostro database Access.
      • Nella finestra visualizzata, premere il segno di croce (x) per chiudere la tabella del database (come mostrato nell’immagine seguente).
      Figura 2 - Chiusura della tabella del database

      Figura 2 – Chiusura della tabella del database

      • Fare clic sulla scheda Strumenti database e fare clic su Compatta e ripara database nel menu Strumenti.
      Figura 3 - Selezionare Compatta e ripara database

      Figura 3 – Selezionare Compatta e ripara database

      • Nella finestra Database to Compact From (Database da compattare) che appare, fare clic su Browse (Sfoglia) per selezionare il database da compattare e riparare. Fare doppio clic sul database.

      La copia del database compattato e riparato si trova nella stessa posizione del database originale.

      Causa 3 – Il campo numerico automatico non è seminato correttamente

      Un altro motivo comune che può portare all’errore 3022 di MS Access è che il campo Autonumber della chiave primaria non è seminato correttamente. 

      Soluzione – Reimpostare manualmente il campo numerico automatico

      Esistono due metodi per reimpostare manualmente il campo Autonumero.

      Metodo 1: utilizzare una query di definizione dei dati

      È possibile ripristinare il campo ‘Autonumero’ cancellandolo. A tale scopo, aprire la tabella in visualizzazione Progettazione e reinserirla. I passaggi dettagliati sono elencati di seguito:

      1. Aprite un database in Access, fate clic sulla scheda Crea e selezionate Progettazione query nel gruppo Query.

      Figura 4 – Progettazione della query di selezione

      • Fare clic su Chiudi quando si apre la finestra di dialogo Mostra tabella.
      Figura 5 - Chiusura della casella Mostra tabella

      Figura 5 – Chiusura della casella Mostra tabella

      • Dalla scheda Progettazione, selezionare l’opzione Vista SQL nel gruppo Risultati.
      Figura 6 - Selezionare la vista SQL

      Figura 6 – Selezionare la vista SQL

      • Nella schermata Query1, inserire il seguente codice:

      ALTER TABLE Table1 ALTER COLUMN AutoNumFieldName COUNTER(iMaxID,1);

      Figura 7 - Query in Access

      Figura 7 – Query in Access

      • Eseguire ora la query di cui sopra facendo clic sull’opzione Esegui nel gruppo Risultati.

      Metodo 2 – Esecuzione del codice VBA

      Se avete inserito nuovi record in una tabella di Access utilizzando l’applicazione Visual Basic (VBA), procedete come segue per reimpostare il campo Autonumero.

      1. In Access, fate clic sulla scheda Crea e poi su Modulo nel gruppo Macro e codice.
      Figura 8 - Selezione del modulo

      Figura 8 – Selezione del modulo

      • Ora digitate il codice seguente nell’editor di Visual Basic.

      Sub ResetAuto()
      Dim iMaxID As Long
      Dim sqlFixID As String
      iMaxID = DMax(“”, “”) + 1
      sqlFixID = “ALTER TABLE ALTER COLUMN COUNTER(” & & “,1)”
      DoCmd.RunSQL sqlFixID
      Fine Sub

      Figura 9 - Codice per azzerare il campo AutoNumber

      Figura 9 – Codice per azzerare il campo AutoNumber

      • Fare clic su Esegui per eseguire il codice sopra riportato.
      Figura 10 - Opzione Esegui

      Figura 10 – Opzione Esegui

      Aprire la tabella e provare a inserire un nuovo record. Se questo non risolve l’errore di runtime 3022, è possibile che la tabella sia danneggiata. Utilizzare il software Stellar Repair for Access per riparare il database e recuperare i suoi oggetti, come tabelle, record eliminati, moduli, ecc.

      Conclusione

      È possibile che si verifichi l’errore 3022 del database Access quando si tenta di inserire un nuovo record in un campo Autonumber. Inoltre, l’errore può verificarsi quando si cerca di aprire un modulo o un file di database. Assicuratevi di capire la causa di questo errore prima di implementare le soluzioni discusse in questo blog. Se non si riesce ad accedere al file di database, utilizzare il software Stellar Repair for Access per ripristinare il database e i suoi oggetti.

      Was this article helpful?

      No NO

      Circa l'autore

      Himanshu Shakya

      Himanshu is a Tech Enthusiast & Blogger at Stellar and having knowledge of Japanese Language. And apart from this in his spare time he likes playing Chess.

      Post correlato

      PERCHÉ STELLAR® È LEADER MONDIALE

      Perché scegliere Stellar?

      • 0M+

        Clienti

      • 0+

        Anni di eccellenza

      • 0+

        Ingegneri R&S

      • 0+

        Paesi

      • 0+

        PARTNER

      • 0+

        Premi ricevuti