Risoluzione dei problemi relativi alla conversione di un file di Access

È possibile convertire senza problemi la maggior parte dei file di Microsoft Access (file di Microsoft Access: File di database o di progetto. In Access 2007 gli oggetti di database e i dati vengono vengono memorizzati in file con estensione accdb, mentre nelle versioni precedenti vengono utilizzati i file con estensione mdb. Un file di progetto di Access non contiene dati e viene utilizzato per connettersi a un database di SQL Server.) di versioni precedenti nel formato Access 2000 o Access 2002 - 2003. In alcuni rari casi, tuttavia, le nuove caratteristiche possono creare conflitti con il codice e gli oggetti esistenti.

MostraRisoluzione dei problemi relativi alla conversione di database di Access di versioni precedenti nel formato Access 2000 o Access 2002 - 2003

MostraViene visualizzato un messaggio che segnala errori di compilazione durante la conversione o l'attivazione del database.

Quando si converte un database di Microsoft Access versione 2.0 nel formato Access 2000 o Access 2002 - 2003, l'utilità di conversione converte il codice Access Basic in codice Visual Basic, Applications Edition (VBA). Se una parte di codice non viene compilata correttamente, è possibile che dopo la conversione del database di Access venga visualizzato un messaggio di errore.

Nel database di Access convertito, aprire un modulo in visualizzazione Struttura e quindi scegliere Compila <Nome Progetto> dal menu Debug. La compilazione si arresta ad ogni riga di codice che include un errore, consentendo di correggere la sintassi in modo da risolvere il problema di compilazione.

  • In casi rari, è possibile che l'utilità di conversione non riesca a convertire alcune parti di sintassi. Ad esempio, è possibile che l'istruzione DoCmd non venga convertita nel metodo DoCmd. Inoltre, è possibile che vengano visualizzati messaggi di errore di compilazione se il database di Microsoft Access versione 2.0 include errori di sintassi. Per questo motivo è consigliabile compilare tutti i moduli del database della versione precedente prima di convertirli.
  • Microsoft Access 2000 o versioni successive non supportano la libreria di compatibilità DAO (DAO (Data Access Objects): Interfaccia di accesso ai dati che comunica con origini dati compatibili con Microsoft Jet e ODBC per connettersi ai dati e recuperare, modificare e aggiornare i dati e la struttura del database.) 2.5/3.x. Se si cerca di convertire un database il cui codice include versioni precedenti di oggetti, metodi e proprietà DAO dipendenti dalla libreria di compatibilità DAO 2.5/3.x, viene visualizzato un messaggio che segnala errori di compilazione durante la conversione del database. Prima di convertire il database, è necessario aggiornare il codice in modo che non dipenda più dalla libreria di compatibilità DAO 2.5/3.x. Se viene comunque visualizzato un messaggio di errore di compilazione durante la conversione, eseguire la procedura seguente per correggere i riferimenti.
    1. Aprire il database di Access convertito in Access 2002 o in una versione successiva.
    2. Aprire un modulo (modulo: Insieme di dichiarazioni, istruzioni e routine memorizzate come singola unità denominata. Esistono due tipi di moduli: standard e di classe.) nel database.
    3. Scegliere Riferimenti dal menu Strumenti.
    4. Nella casella Riferimenti disponibili deselezionare le caselle di controllo corrispondenti ai riferimenti mancanti alla libreria di compatibilità DAO 2.5/3.x.
    5. Selezionare la casella di controllo corrispondente alla libreria di oggetti Microsoft DAO 3.6.
  • Poiché Microsoft Access 97 o versioni successive supportano alcune nuove parole chiave di Visual Basic, queste non possono più essere utilizzate come identificatori. Le nuove parole chiave sono: AddressOf, Decimal, DefDec, Enum, Event, Friend, Implements, RaiseEvent e WithEvents. Quando si converte un database di Access di una versione precedente nel formato di file Access 2000 o Access 2002 - 2003, gli identificatori esistenti che corrispondono alle nuove parole chiave di Visual Basic genereranno un errore di compilazione. Per risolvere il problema, modificare gli identificatori esistenti in modo che differiscano dalle parole chiave.
  • In Access versione 2.0 è possibile specificare per una routine (routine: Sequenza di dichiarazioni e istruzioni in un modulo che vengono eseguite in blocco. Le routine di un modulo VBA (Visual Basic for Applications) includono sia le routine Sub che le routine Function.) Visual Basic un nome uguale al nome di un modulo, mentre in Microsoft Access 95 o versioni successive una routine e un modulo non possono avere lo stesso nome. Per risolvere il problema, è necessario rinominare la routine o il modulo. In alternativa, per evitare l'errore è possibile assegnare alla routine un nome completo nel codice VBA (Visual Basic, Applications Edition).
  • Quando si converte un database di Access versione 2.0 in formato Access 2000 o versioni successive, il codice del nuovo file è incluso in un progetto Visual Basic, Applications Edition. Per impostazione predefinita, il nome del progetto VBA corrisponde a quello del file di Access. Il nome del progetto VBA corrisponde anche a una parola riservata in Visual Basic. Se un modulo o una routine ha lo stesso nome del progetto VBA, viene visualizzato un messaggio che segnala un errore di compilazione durante la conversione.

MostraDurante la conversione di un database di grandi dimensioni viene visualizzato il messaggio "Memoria insufficiente" o "Impossibile creare altri moduli di classe".

Un file in formato Microsoft Access 2000 o Access 2002 - 2003 ha un limite di 1000 moduli (modulo: Insieme di dichiarazioni, istruzioni e routine memorizzate come singola unità denominata. Esistono due tipi di moduli: standard e di classe.), mentre un database di Access 97 ha un limite di 1024 moduli. Il numero di moduli previsto per un file di Microsoft Access include le maschere e i report con la proprietà Possiede modulo impostata su . Per risolvere questo problema di memoria, è necessario ridurre il numero di oggetti (oggetti di database: Un database di Access contiene oggetti quali tabelle, query, maschere, report, pagine, macro e moduli. Un progetto di Access contiene invece oggetti quali maschere, report, pagine, macro e moduli.) del database di Access. Si consideri l'opportunità di suddividere l'applicazione in più database. Se sono presenti moduli con un'elevata quantità di codice, è consigliabile valutare l'utilizzo di database di libreria (database di libreria: Insieme di routine e oggetti di database che è possibile richiamare da qualsiasi applicazione. Per utilizzare gli elementi della libreria, è necessario innanzitutto stabilire un riferimento dal database corrente al database di libreria.) per la memorizzazione del codice.

MostraÈ necessario visualizzare il registro degli errori di conversione.

Se in Microsoft Access vengono rilevati errori durante la conversione di un file di Access (file di Microsoft Access: File di database o di progetto. In Access 2007 gli oggetti di database e i dati vengono vengono memorizzati in file con estensione accdb, mentre nelle versioni precedenti vengono utilizzati i file con estensione mdb. Un file di progetto di Access non contiene dati e viene utilizzato per connettersi a un database di SQL Server.), è possibile visualizzare un riepilogo degli errori aprendo la tabella Errori di conversione nel nuovo file di Access. La tabella Errori di conversione include le colonne seguenti:

Tipo oggetto       Tipo dell'oggetto di database (oggetti di database: Un database di Access contiene oggetti quali tabelle, query, maschere, report, pagine, macro e moduli. Un progetto di Access contiene invece oggetti quali maschere, report, pagine, macro e moduli.) nel quale è stato rilevato un errore oppure "Database" se è stato rilevato un errore che non è relativo a un oggetto di database specifico.

Nome oggetto       Nome dell'oggetto nel quale è stato rilevato un errore. Se si verifica un errore di compilazione durante la conversione, il nome del modulo che contiene l'errore non verrà tuttavia specificato.

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

MostraNon è possibile convertire il file di Access utilizzando il comando Converti database/progetto.

Se non è possibile convertire correttamente il file di Microsoft Access scegliendo Utilità database dal menu Strumenti e quindi Converti database/progetto, eseguire la procedura seguente.

  1. In Access 2002 o versioni successive scegliere Nuovo dal menu File e quindi creare un nuovo database di Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo.) o progetto di Access (progetto di Microsoft Access: File di Access connesso a un database di Microsoft SQL Server e utilizzato per creare applicazioni client o server. Un file di progetto non contiene dati né oggetti basati su query di definizione dati, quali tabelle o viste.).
  2. Scegliere Carica dati esterni dal menu File, quindi Importa.
  3. Nella finestra di dialogo Importa selezionare il file di Access che si desidera convertire.
  4. Nella finestra di dialogo Importa oggetti selezionare gli oggetti di database (oggetti di database: Un database di Access contiene oggetti quali tabelle, query, maschere, report, pagine, macro e moduli. Un progetto di Access contiene invece oggetti quali maschere, report, pagine, macro e moduli.) che si desidera importare. Se il nuovo file di Access è un progetto di Access precedentemente connesso a un database di Microsoft SQL Server, importare solo le maschere, i report, le pagine, le macro e i moduli.

 Nota   Quando si converte un file di Access con questo metodo, può essere necessario reimpostare i riferimenti. A tale scopo, aprire un modulo in visualizzazione Struttura, scegliere Riferimenti dal menu Strumenti e quindi selezionare le caselle di controllo corrispondenti ai riferimenti impostati nel file di Access della versione precedente.

MostraCorrezione automatica nome non funziona in un database di Access convertito.

La funzione Correzione automatica nome (Correzione automatica nome: Caratteristica che consente di correggere automaticamente gli errori comuni che possono verificarsi quando vengono rinominati maschere, report, tabelle, query, campi o controlli di maschere e report. Questa caratteristica non consente tuttavia di correggere tutti i riferimenti agli oggetti rinominati.) è attivata per impostazione predefinita nei database creati con Microsoft Access 2000 o versione successiva. Per attivare questa funzione in un database di Microsoft Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo.) convertito, effettuare le seguenti operazioni:

  1. Scegliere Opzioni dal menu Strumenti e quindi selezionare la scheda Generale.
  2. Selezionare le caselle di controllo Tieni traccia delle informazioni di correzione ed Esegui correzione automatica nome.

Se si desidera creare un registro delle modifiche apportate da Access nel database dopo la correzione dei nomi, selezionare anche la casella di controllo Registra correzioni automatiche al nome.

  1. Aprire ogni tabella, query, maschera o report in visualizzazione Struttura (visualizzazione Struttura: Finestra che visualizza la struttura dei seguenti oggetti di database: tabelle, query, maschere, report e macro. Nella visualizzazione Struttura è possibile creare nuovi oggetti di database e modificare la struttura di quelli esistenti.), salvarle l'elemento e chiuderlo.

MostraI dati di un database di Access in lingue diverse dall'inglese sono illeggibili.

Quando si converte un database di Microsoft Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo.) da Access 97 o versioni precedenti al formato di file Access 2000 o Access 2002 - 2003, Access utilizza il criterio di ordinamento per determinare quale tabella codici (tabella codici: Tabella che mette in relazione i codici di carattere binari utilizzati da un programma con i tasti della tastiera o l'aspetto dei caratteri a video. Le tabelle codici sono uno strumento per il supporto delle lingue utilizzate in paesi diversi.) utilizzare per convertire i dati in formato Unicode (Unicode: Standard di codifica dei caratteri sviluppato da Unicode Consortium. Utilizzando più di un byte per rappresentare ogni carattere, Unicode consente di rappresentare quasi tutte le lingue scritte del mondo utilizzando un unico set di caratteri.). In Access 2000 o versioni successive il criterio di ordinamento Generale viene associato alla tabella codici Europa occidentale. Pertanto, se il database di Access della versione precedente è stato utilizzato con un sistema operativo in una lingua diversa dall'inglese ed è stato salvato con il criterio di ordinamento Generale, è necessario eseguire una delle procedure seguenti.

  • Se il sistema operativo in uso è nella stessa lingua del database o supporta tale lingua, eseguire la procedura seguente.
    1. Aprire il database nella versione precedente di Access nella lingua diversa dall'inglese.
    2. Modificare il criterio di ordinamento in modo che corrisponda alla lingua del sistema operativo. Per informazioni sulla modifica del criterio di ordinamento nella versione di Access in uso, consultare la Guida in linea di Access.
    3. Compattare il database.
    4. In Access 2002 o versioni successive, convertire il database.
  • Se il sistema operativo in uso non è nella stessa lingua del database o non supporta tale lingua, oppure se per la lingua non è disponibile un criterio di ordinamento specifico nella versione precedente di Access, eseguire la procedura seguente.

Può essere necessario eseguire questa procedura se la lingua del database di Access che si desidera convertire è stata creata con un sistema operativo in vietnamita, farsi o in una lingua baltica, ad esempio estone, lettone o lituano.

  1. Effettuare una delle seguenti operazioni:
    • Se si desidera convertire un database di Access 2.0, individuare la seguente sottochiave nel Registro di sistema di Windows:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 2.x

  • Se si desidera convertire un database di Access 95 o 97, individuare la seguente sottochiave nel Registro di sistema di Windows:

HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 3.x

  1. Nella sottochiave Jet 2.x o Jet 3.x creare una nuova voce denominata ForceCP e quindi procedere in uno dei seguenti modi:
    • Impostare il valore della voce "ANSI" in modo da specificare la tabella codici predefinita del computer.
    • Specificare il numero della tabella codici per la lingua desiderata, ad esempio specificare "1257" per la lingua Baltico (Windows).
  2. Avviare Access 2002 o versione successiva e convertire il database.
  3. Eliminare la voce del Registro di sistema ForceCP in modo che Access utilizzi nuovamente il criterio di ordinamento del database per determinare la tabella codici.

MostraRisoluzione di altri problemi relativi alla conversione di un database di Access versione 2.0 nel formato Access 2000 o Access 2002 - 2003

MostraI valori relativi alla data o all'ora nei criteri della query restituiscono risultati diversi.

Quando si converte un database di Microsoft Access versione 2.0 in formato Access 2000 o Access 2002 - 2003, le query che includono criteri basati su valori specifici relativi all'ora nei campi Data/Ora possono restituire risultati diversi rispetto alle versioni precedenti. Questo problema può verificarsi anche se si collegano (collegamento (tabelle): Azione che stabilisce una connessione con i dati di un'altra applicazione per consentirne la visualizzazione e la modifica sia nell'applicazione originale sia in Access.) le tabelle di un database di Microsoft Access versione 2.0 a un database di Access 2000 o versione successiva. Il problema interessa solo la parte dei campi Data/Ora relativa all'ora.

Anche le query che includono criteri che specificano date comprese tra il 1900 e il 1929 possono restituire risultati diversi. Ad esempio, il criterio relativo alla data #01/01/15# in Microsoft Access 2.0 e 95 rappresenta il 1 gennaio 1915, mentre in Microsoft Access 97 e versioni successive rappresenta il 1 gennaio 2015. Per evitare queste differenze, modificare i dati nei criteri specificando il secolo, ad esempio #01/01/1915#.

MostraIl report di Microsoft Access versione 2.0 convertito presenta margini diversi.

In un database di Microsoft Access convertito da Access 2.0 al formato di file Access 2000 o Access 2002 - 2003 possono verificarsi problemi durante la stampa o la visualizzazione in anteprima di un report (report: Oggetto di database di Access che consente di stampare informazioni formattate e organizzate in base alla struttura definita dall'utente. Sono esempi di report i riepiloghi delle vendite, gli elenchi telefonici e le etichette postali.) con alcuni margini impostati su 0. Quando si converte un report creato con la versione 2.0, i margini non vengono impostati su 0, bensì sul margine minimo valido per la stampante predefinita per evitare che i dati del report vengano stampati nell'area non stampabile prevista per la stampante.

Per risolvere questo problema, ridurre la larghezza, la spaziatura o il numero di colonne del report, in modo che la larghezza delle colonne sommata alla larghezza dei margini predefiniti sia inferiore alla larghezza del foglio.

MostraLe chiamate API a 16 bit non vengono convertite.

Se un modulo di Microsoft Access versione 2.0 include chiamate API a 16 bit, è possibile che venga visualizzato un messaggio di errore durante la conversione del database nel formato di file Access 2000 o Access 2002 - 2003. È necessario convertire le istruzioni Declare API nel database convertito nelle istruzioni equivalenti a 32 bit.

Di seguito vengono elencati alcuni suggerimenti per la conversione del codice.

  • Verificare che le istruzioni Declare si riferiscano alle DLL (Dynamic-Link Library) corrette. Nella tabella seguente vengono indicati i nuovi nomi delle DLL di Windows a 32 bit.
DLL di Windows a 16 bit DLL di Windows a 32 bit
User.dll User32.dll
Kernel.dll Kernel32.dll
GDI.dll GDI32.dll

MostraI controlli aggiuntivi non vengono convertiti.

Quando si converte un database di Microsoft Access (database di Microsoft Access: Insieme di dati e oggetti, quali tabelle, query o maschere, correlati a un particolare argomento o scopo.) che include controlli ActiveX (controllo ActiveX: Controllo, ad esempio una casella di controllo o un pulsante, che offre agli utenti delle opzioni o esegue macro o script per l'automatizzazione di un'operazione. Per i controlli ActiveX, è possibile scrivere macro in Microsoft Visual Basic, Applications Edition o script in Microsoft Script Editor.) in formato Access 2000 o Access 2002 - 2003, è possibile che venga generato un errore. Access versione 2.0 supporta i controlli ActiveX a 16 bit, mentre Access 95 o versioni successive supportano i controlli ActiveX a 32 bit. Access può aggiornare automaticamente un controllo a 16 bit nella versione a 32 bit solo se quest'ultima è installata e registrata nel computer in uso.

MostraViene visualizzato un messaggio di errore che indica che una tabella supera il limite di 32 indici.

Se il database di Microsoft Access versione 2.0 include una tabella con 32 o più indici associati a relazioni, è possibile che venga visualizzato un messaggio di errore quando si esegue la conversione al formato Access 2000 o Access 2002 -2003. Per risolvere l'errore, aprire il database in Access versione 2.0 e modificare la struttura della tabella riducendo il numero di relazioni per la tabella chiave primaria oppure rimuovere alcuni indici dalla tabella chiave esterna, quindi riprovare a eseguire la conversione.

MostraAll'apertura di una maschera o di un report in un database convertito viene visualizzato un messaggio di errore ODBC.

Il messaggio di errore "ODBC – connessione a nomeoriginedati non riuscita" viene visualizzato quando una tabella contenuta nel database convertito di Microsoft Access versione 1.x o 2.0 è collegata a un'origine dati ODBC (origine dati ODBC: Dati e informazioni necessarie per accedere a tali dati da programmi e database che supportano il protocollo ODBC (Open Database Connectivity).) che utilizza un driver e un gestore di driver a 16 bit. Microsoft Access 2002 o versioni successive possono aprire solo origini dati ODBC collegate che utilizzano le versioni a 32 bit di Gestione driver ODBC (Odbc32.dll) e il driver ODBC appropriato, ad esempio la versione a 32 bit del driver ODBC di Microsoft SQL Server (Sqlsrv32.dll).

Per risolvere il problema, è necessario creare un nuovo nome origine (DSN) dati a 32 bit identico al precedente per ogni origine dati ODBC collegata al database di Access 1.x o 2.0 originale.

  1. Nel Pannello di controllo di Microsoft Windows fare doppio clic su Strumenti di amministrazione e quindi su Origine dati (ODBC).
  2. Creare il nuovo nome origine dati inserendo valori identici al nome origine dati originale. Per Microsoft SQL Server è ad esempio necessario specificare almeno i valori di Nome origine dati e Server, ma potrebbe essere necessario definire altri valori quali Nome database.

Se non si conosce con esattezza il nome originale dell'origine dati, aprire il database originale nella versione di Microsoft Access con cui è stato creato, aprire la tabella collegata in visualizzazione Struttura (visualizzazione Struttura: Finestra che visualizza la struttura dei seguenti oggetti di database: tabelle, query, maschere, report e macro. Nella visualizzazione Struttura è possibile creare nuovi oggetti di database e modificare la struttura di quelli esistenti.), quindi visualizzare la finestra di dialogo Proprietà tabella. La proprietà Descrizione della tabella contiene la definizione della stringa di connessione ODBC. Il parametro visualizzato dopo DSN= nella stringa di connessione è il nome dell'origine dati.

MostraRisoluzione dei problemi relativi alla conversione di un database di Access 2000 o versioni successive nel formato Access 97

MostraViene visualizzato un messaggio che indica che nel computer manca almeno una libreria di oggetti di Access 97.

È possibile riconvertire codice che utilizza oggetti DAO (Data Access Objects) (DAO (Data Access Objects): Interfaccia di accesso ai dati che comunica con origini dati compatibili con Microsoft Jet e ODBC per connettersi ai dati e recuperare, modificare e aggiornare i dati e la struttura del database.) nel formato Microsoft Access 97, ma è possibile che venga visualizzato un messaggio che indica che nel computer manca almeno una libreria di oggetti di Access 97. Per correggere i riferimenti mancanti, eseguire la procedura seguente.

  1. Convertire il database di Access 2000 o versioni successive nel formato Microsoft Access 97. Quando viene visualizzato un messaggio che indica che nel computer manca almeno una libreria di oggetti di Access 97, fare clic suOK.
  2. Aprire il database di Access convertito in Microsoft Access 97.
  3. Aprire un modulo (modulo: Insieme di dichiarazioni, istruzioni e routine memorizzate come singola unità denominata. Esistono due tipi di moduli: standard e di classe.) nel database.
  4. Scegliere Riferimenti dal menu Strumenti.
  5. Nella casella Riferimenti disponibili deselezionare le caselle di controllo corrispondenti ai riferimenti mancanti.
  6. Per impostare il riferimento corretto, selezionare la casella di controllo corrispondente alla libreria di oggetti Microsoft DAO 3.51.

 Nota   A differenza di Access 2000 e versioni successive, Access 97 non supporta l'interazione con gli oggetti ADO (ActiveX Data Objects) (ADO (ActiveX Data Objects): Interfaccia di accesso ai dati che comunica con origini dati compatibili con OLE DB per recuperare, modificare e aggiornare dati.).

MostraUn file di Access 97 precedentemente convertito da un database di Access per cui era attivata la protezione nel formato Access 2000 o Access 2002 - 2003 non mantiene le funzionalità di protezione impostate.

Quando si converte un database di Access 2000 o Access 2002 - 2003 nel formato Access 97, le autorizzazioni per il nuovo database vengono reimpostate sui valori predefiniti, poiché in Access 97 non è possibile utilizzare un file di informazioni sul gruppo di lavoro nel formato Access 2000 o Access 2002 - 2003. È necessario proteggere il nuovo database in Access 97.

MostraMancano le specifiche di importazione dal file di Access 97 convertito dal formato Access 2000 o Access 2002 - 2003.

Le specifiche di importazione create e salvate in un file di Microsoft Access in formato Access 2000 o Access 2002 - 2003 non vengono create nel file di Access 97 e devono pertanto essere ricreate.

 
 
Si applica a:
Access 2003