7 modi per correggere Access Non c’è abbastanza memoria per eseguire questo errore di operazione

Sommario:

In questo articolo viene illustrato come correggere Microsoft Access, la memoria non è sufficiente per completare questo errore di operazione . Ottieni anche informazioni dettagliate su quando e perché ricevi questo errore di memoria insufficiente in Access.

Quali sono le circostanze in cui si verifica un errore di Access “Non c’è abbastanza memoria ” ?

  • Durante l’esecuzione di qualsiasi operazione sulla tabella di accesso, è possibile che venga visualizzato il messaggio di errore t qui non è sufficiente spazio su disco o memoria. Principalmente questo accade quando l’operazione eseguita crea un numero enorme di blocchi di pagina.
  • Quando esegui la query di azione su una tabella grande, potresti ricevere questo errore di spazio di memoria insufficiente . Dopo il verificarsi di questo messaggio di errore, tutte le modifiche ai dati che verrà eseguita dalla query di azione verranno ripristinate.

Voto Eccellente su Trustpilot
Strumento di Riparazione Database MS Access Gratuito
Ripara i file di database MDB e ACCDB corrotti e recupera facilmente tabelle, query, indici e record di database eliminati. Prova ora!
Scarica
Facendo clic sul pulsante Download sopra e installando Stellar Repair for Access (14.8 MB), riconosco di aver letto e accettato il Contratto di licenza per l'utente finale e la Politica sulla riservatezza di questo sito.

Perché stai arrivando Non c’è abbastanza memoria per eseguire questa operazione Errore in accesso?

Bene, la prima ragione per ottenere questo errore di memoria insufficiente è che il blocco della pagina ha superato il valore MaxLocksPerFile che è importante per le transazioni. Per impostazione predefinita, il valore di MaxLocksPerFile è 9500 blocchi e viene salvato nel registro di Windows.

Altri motivi possono essere RAM insufficiente, mancanza di memoria virtuale o errore dell’aggiornamento di Windows.

Come risolvere Access Non c’è abbastanza memoria per completare questo errore di operazione?

Puoi provare le seguenti soluzioni alternative per correggere Access, la memoria non è sufficiente per completare questo errore di operazione .

Metodo 1: modificare il valore MaxLocksPerFile da Regedit.exe

Nel registro di sistema Regedit.exe è necessario modificare il valore di MaxLocksPerFile in modo permanente.

Usa l’editor del registro per aumentare il valore di MaxLocksPerFile presente nella seguente chiave:

  • Per l’applicazione MS Access 2000 / MS Access 2002 / MS Office Access 2003 in esecuzione sul sistema operativo Windows a 32 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Jet 4.0

  • Per l’applicazione MS Access 2000 / MS Access 2002 / MS Office Access 2003 in esecuzione sul sistema operativo Windows a 64 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Jet \ 4.0 \ Engines \ Jet 4.0

  • Per l’applicazione MS Access 2007 in esecuzione sul sistema operativo Windows a 32 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 12.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2007 in esecuzione sul sistema operativo Windows a 64 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 12.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2010 in esecuzione sul sistema operativo Windows a 32 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2010 in esecuzione sul sistema operativo Windows a 64 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 14.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2013 in esecuzione sul sistema operativo Windows a 32 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 15.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per MS Access 2013. Principalmente in esecuzione sul sistema operativo Windows a 64 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 15.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2016 in esecuzione sul sistema operativo Windows a 32 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 16.0 \ Access Connectivity Engine \ Engines \ ACE

  • Per l’applicazione MS Access 2016 in esecuzione sul sistema operativo Windows a 64 bit:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Office \ 16.0 \ Access Connectivity Engine \ Engines \ ACE

Notare che questo metodo modifica l’impostazione del Registro di sistema per tutte le applicazioni che utilizzano il motore di database Microsoft Jet versione 4.0.

Metodo 2 # Utilizzo di Setoption per modificare Maxlocksperfile temporaneamente

Nel DBEngine oggetto, c’è un SetOptionmethod . È possibile utilizzare questo metodo per modificare il valore di MaxLocksPerFile nel codice per un periodo temporaneo.

Ebbene, questo metodo SetOption sostituisce il valore delle chiavi del motore di database Microsoft Jet nel registro di sistema solo per un periodo di tempo temporaneo.

Il nuovo valore assegnato rimarrà intatto finché non lo modifichi di nuovo o fino a quando ea meno che gli oggetti DBEngine non vengano chiusi.

Il codice di esempio indicato di seguito utilizza DAO (Data Access Objects).

Per eseguire correttamente questo codice è necessario fare riferimento alla libreria di oggetti Microsoft DAO 3.6.

  • Per prima cosa apri Visual Basic Editor, quindi seleziona strumenti> opzioni di riferimenti dal menu.
  • Nella finestra aperta di Riferimenti, assicurarsi che la casella di controllo della libreria di oggetti Microsoft DAO 3.6 sia selezionata.

 Nota:

Le modifiche apportate in MaxLocksPerFilesetting utilizzando il metodo SetOption sono disponibili solo tramite la sessione corrente di DAO (Data Access Objects).

Le query che vengono eseguite principalmente tramite l’interfaccia utente di MS Access possono comunque utilizzare le impostazioni del registro.

Il seguente codice di esempio consentirà di impostare il valore di MaxLocksPerFile su 200.000; subito prima di eseguire l’attività di aggiornamento all’interno della transazione:

VBCopy
Sub LargeUpdate()
On Error GoTo LargeUpdate_Error
Dim db As DAO.Database, ws As DAO.Workspace

‘ Set MaxLocksPerFile.
DBEngine.SetOption dbMaxLocksPerFile, 200000

Set db = CurrentDb
Set ws = Workspaces(0)

‘ Perform the update.
ws.BeginTrans
db.Execute “UPDATE BigTable SET Field1 = ‘Updated Field’”, _
dbFailOnError

ws.CommitTrans

db.Close
MsgBox “Done!”
Exit Sub

LargeUpdate_Error:
MsgBox Err & ” ” & Error
ws.Rollback
MsgBox “Operation Failed – Update Canceled”
End Sub

Metodo 3 # Impostazione L’UseTransaction proprietà in una query di azione

Se stai ottenendo questo Access non c’è memoria sufficiente per eseguire questa operazione errore durante l’ esecuzione della query di azione . In tal caso, è necessario modificare la query e impostare il suo UseTransactionproperty a No .

Se una query di azione memorizzata in precedenza causa questo errore, impostare NO nella proprietà di UseTransaction .

Osservazioni:

Fai attenzione perché non puoi annullare le modifiche se riscontri errori o problemi durante l’esecuzione della query.

  1. Apri la query di accesso nella visualizzazione struttura.
  2. Ora fai clic sull’opzione Visualizza> Proprietà dal menu.
  3. Tocca gli spazi vuoti presenti nella sezione superiore della finestra della query per visualizzare la finestra di dialogo delle proprietà della query.
  4. Impostare la proprietà di UseTransaction a No .
  5. Ora salva è il momento di salvare la query e quindi chiuderla.

Metodo 4 # Usa il codice per aggiungere il campo in Access Design View

 Se si ottiene lo stesso risultato, l’errore di memoria non è sufficiente ogni volta che si tenta di aggiungere un nuovo campo nella vista struttura della tabella.

Quindi prova il seguente codice per risolvere questo problema. Il codice fornito è abbastanza semplice e adorerai aggiungerlo per rendere potente lo snippet di codice.

Ecco il codice:

Sub AddFieldToTable(ByVal tableName As String, fieldName As String, fieldType As Integer)

Dim objDB As Database

Dim objTableDef As TableDef

Dim objField As Field

Set objDB = CurrentDb

Set objTableDef = objDB.TableDefs(tableName)

‘add the new field

With objTableDef

Set objField = .CreateField(fieldName, fieldType)

.Fields.Append objField

‘You can also set other properties for the field (such as null values allowed etc) here

If fieldType = dbText Then

.Fields(fieldName).AllowZeroLength = False

End If

End With

Set objField = Nothing

Set objTableDef = Nothing

Set objDB = Nothing

End Sub

Metodo 5 # Aumenta il file di paging (memoria virtuale)

Questo errore specifico ” non c’è abbastanza memoria per eseguire questa operazione” si verifica anche quando la RAM del sistema non è in grado di gestire tutte le richieste.

Quando si verifica un problema del genere, il PC inizia a utilizzare i file di paging (memoria virtuale) per l’archiviazione temporanea dei dati aggiuntivi.

Questa memoria virtuale o file di paging non è gestito correttamente. Quindi è necessario gestirlo correttamente manualmente.

Ecco come puoi eseguire questa operazione:

  • Nella casella di ricerca del menu Start digitare performance e premere il pulsante Invio.
  • Premi l’ opzione Regola l’aspetto e le prestazioni dell’opzione Windows .

Aumenta il file di paging 1

  • Nella finestra aperta dell’opzione prestazioni , vai alla scheda Avanzate .
  • Premi il pulsante Cambia e questo apre la schermata della memoria virtuale.

Aumenta il file di paging 2

  • Scegli il disco (disco di tipo SSD o preferibilmente non C :), quindi scegli l’ opzione Dimensioni personalizzate . Nelle due caselle fornite delle dimensioni finali e iniziali, inserire lo stesso valore di dimensione nel MB.
  • Premi l’ opzione Imposta , quindi tocca OK.

Aumenta il file di paging 3

  • Per vedere tutte le modifiche applicate, riavvia il PC.

Metodo 6 # Aggiorna Windows

Se sei un utente di Windows 10, vai all’app Impostazioni e controlla gli aggiornamenti che non sono ancora installati sul tuo PC. Questo aggiornamento di Windows è molto utile per correggere molti bug e problemi che sorgono sul tuo PC. Ciò avrà un impatto positivo sulla RAM del tuo PC.

Aggiorna Windows

Quindi, se il tuo sistema mostra un errore “non c’è abbastanza memoria”, verrà risolto anche dopo aver effettuato l’aggiornamento di Windows.

Metodo 7 # Aggiungi RAM

Se continui a ricevere l’ errore “memoria insufficiente per completare questa operazione” , potrebbe essere dovuto alla mancanza di RAM. Per affrontare una situazione del genere è necessario acquistare e installare un nuovo modulo di memoria sul PC.

Incartare:

Spero che tu abbia trovato utile questa guida per correggere Access non c’è abbastanza memoria per completare questo errore di operazione.

Facci sapere se il tuo problema è stato risolto o meno utilizzando le correzioni sopra indicate condividendo le tue esperienze nella sezione dei commenti.

Hai ancora problemi? Risolvili con la Stellar riparazione per Access:

Questo software garantisce riparazione e recupero di senza soluzione di continuità del database ACCDB e MDB. Esso ripristina tutti gli oggetti tra cui tabelle, report, query, record, moduli e indici insieme a moduli, macro, ecc. Fissare Microsoft Access problemi di ora in 3 semplici passaggi:

  1. Scarica Stellar Access database riparazione strumento rated ottima su Cnet.
  2. Fai clic sull'opzione Sfoglia e Cerca per individuare il database di Access corrotto.
  3. Fai clic su Ripara Pulsante per riparae visualizzare in anteprima gli oggetti del database.

Pearson Willey è uno scrittore di contenuti di siti Web e lungo-forma pianificatore di contenuti. Oltre a questo, è anche un avido lettore. Quindi sa benissimo come scrivere un contenuto accattivante per i lettori. Scrivere è come un vantaggio crescente per lui. Ama esplorare le sue conoscenze su MS Access e condividere blog tecnici.