Come risolvere i problemi e per ripristinare una danneggiato Access 2002 o versione successivo del database

Traduzione articoli Traduzione articoli
Identificativo articolo: 283849 - Visualizza i prodotti a cui si riferisce l?articolo.
Richiedente: Richiede la conoscenza dell'interfaccia utente a utente singolo computer.

Il contenuto di questo articolo è applicabile solo ai database Microsoft Access (mdb).

Per la una versione di Microsoft Access 97 di questo articolo, vedere 279334.
Per la una versione di Microsoft Access 2000 di questo articolo, vedere 209137.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Esistono diverse operazioni che possono verificarsi, sia all'interno che all'esterno di Access, che possono danneggiare il file di database (danneggiato). I sintomi di un database danneggiato possono andare da Deleted in alcuni record, all'utente l'impossibilità di aprire uno degli oggetti nel database, all'utente l'impossibilità di aprire completamente il file di database in Access. L'utilità Compatta e ripristina in Microsoft Access è uno strumento utile per il tentativo di ottimizzare o tentando di ripristinare il file di database di Microsoft Access. In questo articolo viene descritta questa utilità di accesso e offerte ulteriori soluzioni alternative per tentando di ripristinare database danneggiati. In questo articolo viene inoltre fornite informazioni sulle cause del database danneggiato.

Nota Microsoft Jet, il motore di database viene utilizzato in Microsoft Access, è un file di sistema di database di condivisione. Quando Microsoft Jet viene utilizzato in un ambiente multiutente, più processi client sono utilizzando file di lettura, scrittura e blocco di operazioni su un database condiviso. Dal momento che più processi client sono lettura e scrittura nello stesso database e Jet non utilizza un log delle transazioni (come i sistemi di database più avanzate, ad esempio SQL Server), non è possibile evitare in modo affidabile qualsiasi e tutti i database danneggiati. Se è necessario un sistema di database eseguire 24 ore al giorno, sette giorni alla settimana in un ambiente multiutente, si consiglia di utilizzare un sistema di database di true client-server che supporta le transazioni permanente, ad esempio Microsoft SQL Server.

Informazioni

Sebbene le procedure descritte in questo articolo in genere il ripristinare i file di database, per salvaguardare i dati danneggiati, Microsoft consiglia di creare un backup del file di database spesso come.

Descrizione dell'utilità di ripristino e compatta

Compattazione di un database

Quando si compatta un database, il processo di compattazione verrà liberare lo spazio inutilizzato in un database viene creato per le eliminazioni di oggetti e record. Ciò avviene la creazione di un nuovo database di destinazione e copiando ciascun oggetto del database precedente al nuovo database. Se si sceglie di compattare il database il nome di database originale anziché in un nuovo database, il processo di compattazione viene creato un database temporaneo, Esporta tutti gli oggetti dal database originale nel database temporaneo, rimuove il database originale e quindi Rinomina il database temporaneo al nome del database originale.

Di seguito è un elenco di azioni che esegue il processo di compattazione:
  • È possibile riorganizzare le pagine di una tabella in modo che risiedono in pagine di database adiacenti. Questo migliora le prestazioni perché la tabella non è non è più frammentata nel database.
  • Recupera lo spazio inutilizzato viene creato per le eliminazioni di oggetti e record. Quando oggetti o record vengono eliminati dal database, lo spazio che occupavano viene contrassegnato come disponibile. Tuttavia, la dimensione del database non riduce a meno che non si compatta il database. Per i database in cui oggetti e record vengono aggiungi, eliminati e aggiornati con una certa frequenza, si consiglia di compattare spesso il database.
  • Reimposta i campi contatore incrementale, affinché il valore successivo allocato sarà uno più il valore più alto nei record rimanenti. Ad esempio, se tutti i record nel database sono stati eliminati, dopo aver compattato il database, il valore del campo contatore sarà 1 quando viene aggiunto il record successivo. Se il massimo valore di contatore di rimanente nel database è 50, dopo aver compattato il database, il valore in contatore il campo verrà essere 51 quando verrà aggiunto il record successivo. Si noti che questo è true anche se i record contenenti valori superiori a 50 sono stati aggiunti in precedenza sono stati eliminati prima per la compattazione.
  • Consente di rigenerare le statistiche tabella utilizzati nel processo di ottimizzazione delle query. Queste statistiche possono diventare non aggiornate nel tempo. Ciò si verifica in genere se viene eseguito il rollback delle transazioni o se il database non viene chiuso correttamente causa di una perdita di potenza imprevisto o perché il computer viene spento prima di un programma che utilizza Microsoft Jet ha una modifica a chiudere completamente.
  • Contrassegnare tutte le query in modo che verrà ricompilati alla successiva esecuzione della query. Questa operazione è importante in quanto le statistiche di database possono cambiare e una query precedentemente compilata potrebbe presentare un piano non accurato.
ripristino di un database

Il processo di ripristino tenta di ripristinare solo le tabelle, query e gli indici del database. mentre non può essere utilizzata per riparare maschere, report, macro e moduli.

Come assicurarsi che prima di eseguire l'utilità Compatta e ripristina

Prima si esegue l'utilità Compatta e ripristina in un database, assicurarsi che delle operazioni seguenti:
  • Assicurarsi di avere sufficiente spazio di archiviazione sul disco rigido per entrambi gli originali e versioni di Access compattate database. In questo modo, deve disporre di sufficiente spazio di archiviazione per almeno due volte la dimensione del database di Access in tale unità. Se occorre liberare spazio su disco, eliminare i file non necessari da tale unità o, se possibile, spostare il database di Access in un'unità dotata di spazio.
  • Assicurarsi che disporre di autorizzazioni sia Open/Run e Open Exclusive del database di Access. Se si è proprietari del database, assicurarsi che impostare queste autorizzazioni. Se non si è proprietari del database, è necessario contattare il proprietario per scoprire se è possibile ottenere queste autorizzazioni.
  • Assicurarsi che nessun utente sia il database di Access.
  • Assicurarsi che il database di Access non si trova su una condivisione di rete in sola lettura o che disponga dell'attributo di file di sola lettura.

Passaggi per tentando di ripristinare un database danneggiato

Nella procedura seguente viene illustrato un metodo di generale che è possibile utilizzare per tentare di ripristinare un database danneggiato:
  1. Eseguire una copia di file di database danneggiato (MDB) in modo da avere una copia di backup.
  2. Eliminare il file ldb, se presente. È necessario chiudere il corrispondente file mdb prima di eliminare il file ldb.

    Il file ldb è utilizzato per determinare quali record sono bloccati in un database condiviso e da chi. Se un database può essere condiviso da più utenti, viene creato un file ldb con lo stesso nome del corrispondente file di database (mdb). Ad esempio, se si apre il database di esempio Northwind.mdb per l'utilizzo condiviso nella cartella C:\Msoffice\Access, nella stessa cartella verrà automaticamente creato un file denominato Northwind.ldb. Il file ldb d'acconto viene automaticamente eliminato dopo che l'ultimo utente è uscito dal database con le seguenti due eccezioni: quando l'ultimo utente non dispone di autorizzazioni per la cartella contenente il file mdb o quando il database è danneggiato di eliminazione. Il file ldb contiene un elenco degli utenti che hanno il database aperto.
  3. Eseguire l'utilità Compatta e ripristina. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Se un database è aperto, chiuderlo.
    2. Dal menu Strumenti , scegliere Utilità Database , quindi Compatta e ripristina database .
    3. Nella finestra di dialogo Compatta Database , selezionare il file che si desidera compattare e scegliere Compatta .
    4. Nella finestra di dialogo Compatta Database , immettere un nuovo nome di file e scegliere Salva .

      Se il ripristino e la compattazione non hanno successo, verrà visualizzato un apposito messaggio. In questo caso significa che il danno è talmente grave da non poter essere corretto.
  4. Se la procedura per il ripristino di un database danneggiato descritta in precedenza non ha successo, cercare di creare un nuovo database importandovi quindi gli oggetti, uno a uno, dal vecchio database. Quindi ricreare le relazioni. Questa tecnica consente di risolvere i problemi con le tabelle di sistema danneggiate del database.

    Nota Non è possibile importare pagine di accesso ai dati con l'importazione guidata. bensì è necessario aprirle direttamente nel database. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Nella finestra database, fare clic su pagine dall'elenco oggetti .
    2. Fare clic su Nuovo .
    3. Nella finestra di dialogo Nuova pagina di accesso dati , fare clic sulla pagina Web esistente e scegliere OK .
    4. Nella finestra Individua pagina Web , individuare il percorso della pagina di accesso ai dati.
  5. Se il danno riguarda una tabella e i passaggi precedenti non sono ripristinati nella tabella, provare le seguenti operazioni:
    1. In Microsoft Access, esportare la tabella in un formato ASCII (testo delimitato) file. Per ulteriori informazioni vedere l'argomento "Esportazione dati o database di oggetti." nella Guida in linea di Access.
    2. Eliminare qualsiasi relazione associata alla tabella ed eliminare la tabella dal database.
    3. Compattare il database.
    4. Ricreare la tabella e le relazioni che aveva.
    5. Utilizzando un editor di testo esaminare il file ASCII al fine di identificare eventuali dati errati o anomali e rimuoverli dai record. Salvare il file in formato file di testo ASCII.
    6. Reimportare il file ASCII nella tabella appena ricreata. Per ulteriori informazioni su questo argomento, cercare l'indice di Guida in linea del Access Microsoft per la parola "delimitare" e quindi visualizzare l'argomento "importare o collegare dati e oggetti.
    7. Digitare i record che si sono costretti a eliminare.
  6. In una maschera o un report danneggiato, il danno può riguardare il maschera o il report stesso oppure uno o più controlli di maschera o il report. È possibile eliminare la maschera o il report e importarlo dalla copia di backup del database oppure utilizzare una delle seguenti opzioni:
    • Se il danno riguarda la maschera o il report, creare una nuova maschera o un nuovo report e copiare i controlli dalla maschera o dal report originale.
    • Nel caso di un controllo di maschera o di report danneggiato, creare una nuova maschera o un nuovo report e ricrearvi i controlli. È preferibile ricreare tutti i controlli, in quanto non esiste un modo per poter identificare quali siano i controlli danneggiati.
  7. Nel caso di una macro o di un modulo danneggiato, il danno può riguardare la macro o il modulo stesso oppure il relativo contenuto. È possibile eliminare la macro o il modulo e importarlo dalla copia di backup del database o utilizzare una delle seguenti opzioni:
    • Nel caso di una macro o di un modulo danneggiato, creare una nuova macro o un nuovo modulo e copiarvi il contenuto della macro o del modulo originale.
    • Il danno potrebbe riguardare caratteri non ASCII incorporati nel modulo,. pertanto salvare il modulo come file di testo, rimuovere qualsiasi dato errato o anomalo e ricaricare il file di testo in un nuovo modulo.
    • Se il danno riguarda il contenuto della macro o del modulo, sarà necessario creare una nuova macro o un nuovo modulo e ricreare il contenuto della macro o del modulo originale.
Se non è possibile ripristinare il database utilizzando la procedura descritta, significa probabilmente che il database non può essere riparato. In tal caso, si consiglia di ripristinare l'ultima copia di backup del database disponibile oppure ricreare il database.

Come alternativa finale è possibile ricorrere ad aziende in grado di fornire un servizio di ripristino dei database di Microsoft Access. Poiché si tratta ad un servizio specializzato, il modo più efficiente per individuare un consulente consiste per inviare un messaggio nel newsgroup Internet di Microsoft Access "Altri fornitori e gruppi per utente", che ha il seguente indirizzo di newsgroup:
Microsoft.public.Access.3rdpartyusrgrp
Per ulteriori informazioni sui newsgroup Internet relativi a Microsoft Access, vedere il seguente articolo della Microsoft Knowledge Base: Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
287756Campo contatore non viene reimpostato dopo avere compattato un database

Perché i file mdb potrebbero essere danneggiati

Esistono tre motivi perché un file mdb potrebbe vengono danneggiato, come illustrato di seguito:
  • Operazione di scrittura interrotta
  • Guasto hardware di rete
  • Apertura e salvataggio del file mdb in un altro programma

Operazione di scrittura interrotta

È necessario uscire da Access sempre correttamente facendo clic su Esci o Chiudi dal menu file . Se un database è aperti e la scrittura dei dati quando Access viene chiuso in modo anomalo, il modulo di gestione di database Jet è possibile contrassegnare il database come sospetto o danneggiato. Questo problema può verificarsi se si disattiva manualmente il computer senza prima chiusura Windows o se viene interrotta l'alimentazione. Altre situazioni possono aver luogo che non vengono arrestati Access ma che potrebbe interferire con la scrittura di dati su disco mentre è aperto il database di Jet. Questa situazione può verificarsi, ad esempio, quando le reti si verifichino conflitti di dati o malfunzionamento delle unità disco. Se si verifica una di queste interruzioni, Jet possibile contrassegnare il database come potenzialmente danneggiato.

Quando Jet inizia un'operazione di scrittura, imposta un flag e viene quindi Reimposta il flag di una volta completata l'operazione. Se viene interrotta un'operazione di scrittura, il flag rimarrà impostato. e risulterà tale la volta successiva in cui si tenterà di aprire nuovamente il database, determinando di conseguenza il contrassegno del database come danneggiato. Nella maggior parte dei casi i dati contenuti nel database non sono effettivamente danneggiati, ma indipendentemente da questo la presenza del flag impostato fa sì che Jet segnali il database come danneggiato. In casi come questo, in genere la compattazione o ripristinare il database (o entrambi) possibile ripristinare il database. Fortunatamente esistono vari modi per determinare l'utente e la workstation responsabili del contrassegno del file come sospetto. Con Microsoft Visual Basic Applications in Access, è possibile creare un elenco di utenti che vengono registrati in un database specifico.
208449Newsgroup di Microsoft Access disponibili su Internet
Per ulteriori informazioni su come effettuare questa operazione, vedere la sezione "Come stabilire quali workstation/utenti stanno causando il file per essere contrassegnato come sospetto" più avanti in questo articolo.

Guasto hardware di rete

A volte danneggiamento può avvenire senza essere coinvolti di database Microsoft Jet. Ad esempio, hardware di rete difettosa può provocano un file di danneggiato. Tale causa può essere uno o più collegamenti nella catena dell'hardware che collega il computer su cui risiede il database e il computer in cui il database viene aperto. Tale catena può essere composta tra l'altro da schede di rete, cavi di rete, router e concentratori.

Danneggiamento basata sull'hardware in genere è indicato da file mdb che non possono essere ripristinati tramite l'utilizzo di compattazione, ripristino o Jetcomp. I file di database continueranno a venire danneggiati finché il componente hardware responsabile non sarà stato riparato o sostituito.

Apertura e salvataggio del file mdb in un altro programma

Non è possibile ripristinare un file mdb che è stato aperto e quindi salvato in un altro programma. Ad esempio, è possibile aprire e salvare un file di MDB in Microsoft Word, ma se si dovesse effettuare questa operazione, il file mdb non recuperabile, tranne i messaggi da una copia di backup. Se si apre accidentalmente un file mdb in un'altra applicazione, assicurarsi di non salvarlo. Essa serve veramente inutile per aprire un file mdb in un'altra applicazione, in perché in caso contrario, viene visualizzata una serie apparentemente casuale di caratteri.

Come determinare quali workstation/utenti stanno causando il file per essere contrassegnato come sospetto

Quando è risolvere di determinare la causa database danneggiato, potrebbe essere necessario verificare che è stato registrato nel database. Con Microsoft Visual Basic, Applications Edition in Access 2002 o in Access 2003, è possibile accedere un elenco di utenti connessi a un determinato database.
Per ulteriori informazioni su come effettuare questa operazione, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
285822Come determinare connesso a un database utilizzando Microsoft Jet UserRoster in Access 2002 o Access 2003

Procedura che è possibile adottare per prevenire il danneggiamento

Per impedire il danneggiamento del database:
  • Evitare le cadute di tensione e le interruzioni di corrente durante le operazioni di scrittura nel database,. Perdita di potenza durante operazioni di scrittura nel database può causare il database per essere lasciate in uno stato sospetto.
  • Evitare le cadute delle connessioni di rete.
  • Evitare l'interruzione anomala di connessioni di Microsoft Jet come interruzioni dell'alimentazione, chiusura manuale, con l'applicazione, di arresto di Task Manager e così via.
  • Dopo la programmazione, è necessario chiudere tutti gli oggetti DAO e ADO eventualmente aperte. Sono esempi di Recordset , QueryDef , TableDef e gli oggetti di database .
  • Gli errori di sistema irreversibili causano quasi sempre interruzioni anomale del database. Se il database è soggetto a errori irreversibili, è necessario risolvere gli errori prima che il database diventa troppo danneggiato per aprire o per ripristinare.Per ulteriori informazioni su come effettuare questa operazione e l'esempio di codice che è possibile utilizzare, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    285822Come determinare chi è collegato a un database di utilizzo di Microsoft Jet UserRoster in Access 2002
    Per ulteriori informazioni sugli errori irreversibili di sistema, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
    294301ACC2002: How risoluzione degli errori di sistema irreversibili che si verificano in Access 2002 in esecuzione su Microsoft Windows 2000
  • Compattare spesso il database.
  • Non eseguire IPX in Microsoft Windows NT Server in cui Microsoft Jet database si trovano nella rete e il client è Microsoft Windows 95 con IPX/SPX. Eseguire invece TCP-IP nel server Windows NT Server e uno stack di protocollo doppio di IPX e TCP-IP nel computer client che esegue Windows 95. Windows NT e Windows NT con IPX/SPX non causano questo problema, come anche Novell
  • Evitare un numero elevato di operazioni di aperte e chiusura in un ciclo (più di 40.000 operazioni consecutive di aperte e chiusura potrebbero causare il danneggiamento).

Nota speciale sui database convertiti

Nelle versioni di Access precedenti a Access 2002, se sono presenti errori, mentre sono stati conversione di un database alla versione corrente, non era facile determinare quali oggetti interessati e probabilmente contenuto danneggiamento evidente.

Quando Microsoft Access 2002 o versione successiva di errori di Rileva durante la conversione di un file di Access, è possibile visualizzare un riepilogo di questi errori, aprire la tabella errori di conversione in nuovo file di Access. La conversione Tabella errori contiene le colonne seguenti:

tipo di oggetto. Il tipo di oggetto database in cui Access ha rilevato un errore, o "Database" Se Access ha rilevato un errore che non è specifico di un particolare tipo di oggetto.

nome di oggetto. Il nome dell'oggetto in cui Access ha rilevato un errore. Se Access rileva un errore di compilazione durante la conversione, tuttavia, il nome del modulo che contiene l'errore non specificato.

Descrizione errore: Se necessario, è possibile premere MAIUSC+F2 per visualizzare la descrizione completa dell'errore.

Riferimenti

Per ulteriori informazioni sul ripristino dei database, scegliere Guida in linea di Access dal menu Guida , digitare ripristino nell'Assistente di Office o nella ricerca libera e scegliere il pulsante Cerca per visualizzare l'argomento. Per ulteriori informazioni sulla risoluzione dei database di versioni precedenti di Access, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
209137Come risolvere i problemi e ripristinare un database di Jet 4.0 danneggiato
279334Come ripristinare un database di Jet 3.5 danneggiato
109953Modalità di risoluzione dei problemi/ripristino danneggiato Jet 3.0 e precedenti database
284152Risoluzione degli errori di sistema irreversibili che si verificano quanto si esegue Access 2002 in Windows Millennium

Proprietà

Identificativo articolo: 283849 - Ultima modifica: lunedì 7 maggio 2007 - Revisione: 6.4
Le informazioni in questo articolo si applicano a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Chiavi: 
kbmt kbcorrupt kbtshoot kbhowto KB283849 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 283849
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com