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.
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!
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 .
- Modificare il valore MaxLocksPerFile da Regedit.exe
- Utilizzare il metodo SetOption per modificare temporaneamente il valore MaxLocksPerFile
- Nella query di azione impostare la proprietà UseTransaction
- Usa codice per aggiungere campi in Access Design View
- Aumenta file di paging (memoria virtuale)
- Aggiorna Windows
- Aggiungi RAM extra
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, 200000Set db = CurrentDb
Set ws = Workspaces(0)‘ Perform the update.
ws.BeginTrans
db.Execute “UPDATE BigTable SET Field1 = ‘Updated Field’”, _
dbFailOnErrorws.CommitTrans
db.Close
MsgBox “Done!”
Exit SubLargeUpdate_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.
- Apri la query di accesso nella visualizzazione struttura.
- Ora fai clic sull’opzione Visualizza> Proprietà dal menu.
- Tocca gli spazi vuoti presenti nella sezione superiore della finestra della query per visualizzare la finestra di dialogo delle proprietà della query.
- Impostare la proprietà di UseTransaction a No .
- 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 .
- Nella finestra aperta dell’opzione prestazioni , vai alla scheda Avanzate .
- Premi il pulsante Cambia e questo apre la schermata della memoria virtuale.
- 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.
- 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.
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.
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:
- Scarica Stellar Access database riparazione strumento rated ottima su Cnet.
- Fai clic sull'opzione Sfoglia e Cerca per individuare il database di Access corrotto.
- Fai clic su Ripara Pulsante per riparae visualizzare in anteprima gli oggetti del database.