ACCESS ERROR 3022

Sommario:

Questo blog è completamente dedicato a fornire la soluzione per uno degli errori più comuni di MS Access. Errore di accesso 3022: “Le modifiche richieste alla tabella non hanno avuto esito positivo”. Per sapere come risolvere questo specifico codice di errore devi provare le seguenti correzioni menzionate in questo post.

Scenario pratico:

Ottengo l’errore di accesso 3022: le modifiche richieste alla tabella non hanno avuto esito positivo perché creerebbero valori duplicati nell’indice primario, nella chiave primaria o nella relazione …

Il codice è una modalità di modifica che ho creato che cancella tutti i record dalla tabella in cui vengono trovati i criteri. Ci possono essere record illimitati basati su ciò che è in tblMulti.

C’è un tipico PK in ciascuno ed è impostato per il numero automatico non è consentito duplicare.

Non riesco a trovare dove ho sbagliato. Potete per favore guardare questo e indicarmi una direzione per sistemarlo?

Di Access Errore di run-time ‘3022’:

È possibile recuperare questo errore di accesso ms quando si tenta di inserire un nuovo record nella tabella di accesso che già conteneva un campo Numero automatico. Questo problema specifico si verifica in Microsoft Office Access 2007 o in Microsoft Office Access 2003.

A quel tempo l’applicazione lancia il seguente messaggio di errore:

Le modifiche richieste alla tabella non hanno avuto esito positivo perché creerebbero valori duplicati nell’indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati, rimuovere l’indice o ridefinire l’indice per consentire voci duplicate e riprovare.

IMMAGINE DELLO SCHERMO DEL ERRORE:

Nota: controlla che la tabella non contenga relazioni o indici.

Access “Errore run-time” 3022: le modifiche richieste alla tabella non hanno avuto esito positivo di solito si verificano quando creano valori duplicati nell’indice, nella chiave primaria o nella relazione.

Quindi è necessario modificare i dati nel campo che contengono dati duplicati, rimuovere l’indice o ridefinire l’indice per consentire voci duplicate e riprovare. Questo problema si verifica generalmente al momento del salvataggio delle modifiche a un report o della generazione di un report.



Causa

  • Bene, la causa più comune di occorrenza di questo errore di accesso “3022” è la corruzione nel set di specifiche.
  • Il database di accesso è stato compattato in qualche modo.
  • La tabella contiene un campo numerico automatico non riscritto correttamente.
  • È necessario aver installato Microsoft Jet 4.0 Motore di database Service Pack 8 (SP8).
  • È possibile che siano stati aggiunti i dati dalla tabella collegata 1 alla tabella 2 collegata utilizzando l’opzione Database corrente al posto di un altro database Eliminare il record dalla tabella collegata 1 e riapplicare il record esatto dalla tabella collegata 2 utilizzando l’opzione Database corrente .

Risoluzione per correggere l’errore “Le modifiche richieste alla tabella non sono state eseguite correttamente”

È necessario compattare il set di specifiche correnti vedere la compattazione di un database FRx. Se queste procedure di compattazione non riescono, contattare il supporto FRx per ripristinare il file. Ma se ha esito positivo, ma il componente del report fornisce ancora il messaggio di errore, provare a esportare il componente in un nuovo set di specifiche o ricreare il componente.

Soluzione 1:

Correggere le modifiche richieste alla tabella non sono state eseguite correttamente in Access 2003/2007

Per risolvere questo problema nel database di Access 2007 è necessario ricreare le query di accodamento nel database dbFrontEnd.accdb. Per fare ciò, toccare Aggiungi nel gruppo Tipo di query nella scheda Progettazione, quindi fare clic sull’opzione Altro database.

Access 2003

Per risolvere questo problema nel database di Access 2007 è necessario ricreare le query di accodamento nel database dbFrontEnd.mdb. Per fare ciò, basta fare clic nella Query Aggiungi presente nel menu Query nella vista Progettazione query e quindi fare clic su Un altro database.

Per risolvere questo problema, la prima cosa che devi fare è compattare il database e poi ripristinare il seed del campo Autonumber. Per compattare il database, attenersi alla seguente procedura:

  1. Avvia la tua applicazione di accesso.
  2. Successivamente, apri il database di Access. Nota: se si apre la finestra di dialogo Avviso di sicurezza, quindi toccare l’opzione Apri.
  3. In Access 2007

o È necessario toccare il pulsante Microsoft Office, andare ora all’opzione Gestisci, quindi fare clic su Compatta e ripristina database.

In Access 2003

  • Andare al menu degli strumenti, fare clic su Utilità database e fare clic su Compatta e ripristina database.
  1. Se viene visualizzata la finestra di dialogo Avviso di sicurezza, toccare l’opzione Apri.

Per ripristinare il seed del campo Autonumber, puoi provare uno dei seguenti metodi:

anche leggere:

Scopri tutto sul codice VBA di Microsoft Access – Funzioni VBA, scorciatoie e molto altro …!

[Risolto] Microsoft Access non può aprire il modulo o il report

Metodo 1: utilizzare una query di definizione dei dati

Aprire il database con la tabella in Access 2007.

  1. Vai alla scheda Crea; fare clic su Progettazione query nell’altro
  2. Nella finestra di dialogo Mostra tabella, selezionare l’opzione Chiudi.
  3. Andare ora alla scheda Progettazione, fare clic su Visualizzazione SQL nei risultati
  4. Digitare quanto segue in Query1window:

ALTER TABLE TableNameALTER COLUMN AutoNumFieldNameCOUNTER (iMaxID, 1);

Nota:

TableName è segnaposto per il nome della tabella. AutoNumFieldName è un segnaposto per il nome del campo Numero automatico. iMaxID è un segnaposto per il valore massimo corrente nel campo più 1.

  1. Dalla scheda Design, toccare l’opzione Esegui in Risultati

Access 2003

  1. Fare clic su query sotto oggetti nella finestra del database.
  2. Quindi, fare clic su Nuovo, quindi fare clic sulla vista Progettazione e quindi fare clic su OK.
  3. Nella finestra di dialogo Mostra tabella aperta, fare clic sull’opzione di chiusura.
  4. Dal menu delle query, fare clic su Specifica SQL, quindi fare clic su Definizione dei dati.
  5. Dalla finestra Query di definizione dati, digitare il seguente comando. ALTER TABLE TableNameALTER COLUMN AutoNumFieldNameCOUNTER (iMaxID, 1); Nota:

Qui il TableName indica chiaramente il nome della tabella. E AutoNumFieldName indica il nome del campo Numero automatico. Mentre l’iMaxID rappresenta il valore massimo corrente nel campo più 1.

  1. Nel menu Query, fare clic su Esegui.

Metodo 2: Esegui codice Visual Basic per applicazioni

Accesso 2007

  • Andare ora alla scheda Crea, fare clic sulla freccia giù in Macro e quindi fare clic su Modulo.

Access 2003

  • Passare alla finestra del database, fare clic su Moduli in Oggetti, quindi fare clic su Nuovo.
  • Successivamente, in Visual Basic Editor, incollare il seguente codice.

Sub ResetAuto()

Dim iMaxID As Long
Dim sqlFixID As String

  iMaxID = DMax(“<AutonumberFieldName>”, “<TableName>”) + 1
                       
  sqlFixID = “ALTER TABLE <TableName> ALTER COLUMN <AutonumberFieldName> COUNTER(” & <iMaxID> & “,1)”
        
  DoCmd.RunSQL sqlFixID

End Sub 

Nota Il segnaposto <AutonumberFieldName> rappresenta il nome del campo Numero automatico. Il segnaposto <TableName> rappresenta il nome della tabella.

  1. Dal menu Esegui, fare clic su Esegui sotto / UserForm.

Nota:

Chiudi la tabella prima di utilizzare uno dei due metodi. Non è necessario salvare la query o il modulo dopo aver utilizzato correttamente i due metodi precedent.

Soluzione 2:

Per risolvere l’errore “3022”: Le modifiche richieste alla tabella non hanno avuto successo nell’accesso al database 2013/2016. L’utente deve progettare le tabelle per eliminare la possibilità di immettere valori duplicati nel campo o campo di chiave primaria che utilizza un indice univoco.

Se la chiave primaria utilizzata deve supportare valori duplicati, è necessario rimuovere la chiave primaria corrente e aggiungere un campo Numero automatico alla tabella che funziona come chiave primaria.

Per rimuovere la chiave primaria

La rimozione della chiave primaria non cancellerà il campo oi campi dalla tua tabella. Piuttosto, rimuove la designazione della chiave primaria da quei campi.

Rimuove anche l’indice della chiave primaria che è stata creata per la chiave primaria.

  1. Prima di eliminare la chiave primaria, assicurarsi che non contenga relazioni tra tabelle. Se si tenta ancora di rimuovere la chiave primaria che contiene le relazioni, Access avverte che è necessario eliminare prima la relazione.
  2. Ora nel pannello di navigazione, fare clic con il pulsante destro del mouse sulla tabella in cui si desidera rimuovere la chiave primaria e toccare l’opzione Vista Disegno.
  3. Toccare il selettore di riga corrente per l’ultima chiave primaria.
  4. Se la chiave primaria contiene un singolo campo, fare clic sul selettore di riga per quel campo.
  5. Ma se è composto da più campi, premere il selettore di riga per qualsiasi campo nella chiave primaria.
  6. Andare ora alla scheda Progettazione nel gruppo Strumenti e fare clic sull’opzione Chiave primaria.

Dopo aver eseguito questa procedura completa, vedrai che l’indicatore chiave viene rimosso dal campo o dai campi che hai precedentemente specificato come chiave primaria.

Per aggiungere una chiave primaria di numerazione automatica

Quando un utente crea una nuova tabella nella visualizzazione del foglio dati, Accesso per impostazione predefinita crea una chiave primaria per te e assegna il tipo di dati Contatore.

 Se hai una tabella esistente a cui vuoi aggiungere un campo chiave primaria, aprila nella vista disegno:

  • Andare al riquadro di spostamento e fare clic con il tasto destro sulla tabella a cui si desidera aggiungere la chiave primaria, quindi eseguire la vista struttura.
  • Ora individuare la prima riga vuota nella griglia di progettazione della tabella.
  • Nella colonna Nome campo, assegnare un nome.
  • Nella colonna Tipo di dati, fare clic sulla freccia del menu a discesa e selezionare l’opzione Numero automatico.
  • All’interno delle Proprietà campo, in Nuovi valori, fare clic sull’opzione Incremento per utilizzare valori numerici incrementali per la chiave primaria o fare clic su Casuale per utilizzare numeri casuali.

È possibile che si desideri visualizzare gli indici per la tabella per valutare il loro impatto sulle prestazioni o per garantire che determinati campi vengano indicizzati.

Incartare:

Speriamo che tutte le correzioni manuali sopra menzionate ti aiutino a risolvere questo errore 3022 di runtime di MS Access. Dopo aver utilizzato queste correzioni, condividi le tue opinioni nella sezione dei commenti.



Come correggere l’errore di MS Access ‘3022’: “Le modifiche richieste Al tavolo Non hanno avuto successo “?