Help and Support

Identificativo articolo: 275110 - Ultima modifica: venerdì 20 ottobre 2006 - Revisione: 4.0

BUG: Messaggio di errore "Funzione non definita nell'espressione" quando si apre una query che fa riferimento a una funzione

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I275110
Per la versione di questo articolo relativa a Microsoft Office Access 2003, vedere 824277  (http://support.microsoft.com/kb/824277/ ) .
Difficoltà media: sono richieste conoscenze di base di creazione di macro, gestione di codice e di interoperabilità.

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

Espandi tutto | Chiudi tutto

Sintomi

Quando si tenta di aprire una query che contiene una funzione, vengono visualizzati entrambi i messaggi di errore riportati di seguito. Quando si aprirà qualsiasi query successiva, verrà visualizzato solo il secondo messaggio di errore riportato di seguito.
Il database o il progetto di Microsoft Access include un riferimento mancante o errato al file '<NomeFile>'.
  • Per assicurarsi che il database o il progetto funzioni correttamente è necessario correggere il riferimento.
  • Per informazioni su come correggere il riferimento, consultare la Guida.
Quando si sceglie OK nel primo messaggio di errore, viene visualizzato un secondo messaggio:
Funzione '<FunctionName>' non definita nell'espressione.

Cause

Il database contiene un riferimento a un database, una libreria dei tipi o una libreria di oggetti contrassegnata come MANCANTE: <nomeriferimento> nella finestra di dialogo Riferimenti.

Risoluzione

Per eliminare il riferimento mancante, attenersi alla seguente procedura:
  1. Aprire il database.
  2. Premere ALT+F11 per aprire Visual Basic Editor.
  3. Scegliere Riferimenti dal menu Strumenti.
  4. Deselezionare la casella di controllo relativa alla libreria dei tipi o alla libreria di oggetti contrassegnata come MANCANTE: <nomeriferimento>.
In alternativa alla rimozione del riferimento è possibile ripristinare il file a cui viene fatto riferimento nel percorso specificato nella finestra di dialogo Riferimenti. Se il file a cui viene fatto riferimento si trova in un nuovo percorso, deselezionare il riferimento MANCANTE: <nomeriferimento> e creare un nuovo riferimento al file nella nuova cartella.

Status

Microsoft ha confermato che questo problema riguarda Access.

Informazioni

Quando si apre un database in Microsoft Access 2002, si viene informati dei problemi relativi al riferimento a librerie e progetti esterni. Se il database contiene un riferimento interrotto a una libreria o a un progetto quando si tenta di eseguire una query che richiama una funzione, in Access 2002 viene visualizzato il primo messaggio riportato nella sezione "Sintomi" di questo articolo. Dopo aver scelto OK in questo primo messaggio, viene visualizzato immediatamente il secondo messaggio di errore riportato nella sezione "Sintomi" di questo articolo.

Dopo avere visualizzato il primo messaggio, il primo messaggio non verrà più visualizzato. Solo se sono presenti altre query che contengono chiamate a funzioni, queste query restituiranno il secondo messaggio finché il database non verrà chiuso e quindi riaperto.

ATTENZIONE: la procedura riportata in questo esempio comporta la modifica del database Northwind.mdb. È consigliabile fare una copia di backup del file Northwind.mdb sulla quale eseguire la procedura.

Procedura per riprodurre il problema

  1. Avviare Access 2002, quindi fare clic su Database vuoto nel riquadro attività.
  2. Fare clic su Crea per creare un nuovo database denominato db1.mdb. Prendere nota della posizione in cui viene salvato il database.
  3. Chiudere db1.mdb e riaprire il database di esempio Northwind.mdb.
  4. Utilizzare le istruzioni SQL riportate di seguito per creare due nuove query. Salvare la prima query con nome qryTest e la seconda query con nome qryTest2:
    SELECT CustomerID, CompanyName, ContactName, ContactTitle, Trim([City]) & ", " & Trim([Region]) & " " & Trim([PostalCode]) AS CoAddress FROM Customers;
    SELECT CustomerID, Left([CompanyName],4) AS ShortName FROM Customers;
    Testare entrambe le query per assicurarsi che vengano eseguite senza errori.
  5. Scegliere Oggetti database dal menu Visualizza, quindi Moduli.
  6. Aprire il modulo Funzioni di utilità in visualizzazione Struttura, quindi scegliere Riferimenti dal menu Strumenti.
  7. Nella finestra di dialogo Riferimenti - Northwind scegliere Sfoglia. Fare clic su Database di Microsoft Access (*.mdb) nell'elenco Tipo file, quindi passare alla cartella in cui è stato archiviato il file db1.mdb. Fare clic sul nome file e scegliere Apri.
  8. Scegliere OK nella finestra di dialogo Riferimenti, quindi chiudere Microsoft Access. Salvare le modifiche, se richiesto.
  9. Aprire Esplora risorse, quindi passare alla cartella in cui è stato salvato db1.mdb. Eliminare il file.
  10. Riaprire Northwind.mdb e provare ad aprire la query qryTest in visualizzazione Foglio dati. Verrà visualizzato il primo messaggio di errore riportato nella sezione "Sintomi" di questo articolo.
  11. Scegliere OK nella finestra del messaggio di errore e si noti che viene visualizzato il secondo messaggio di errore.
  12. Scegliere OK nella finestra del secondo messaggio di errore e provare ad aprire la query qryTest2. Questa volta verrà visualizzato solo il secondo messaggio di errore.

Riferimenti

Per ulteriori informazioni su un altro problema che potrebbe causare la visualizzazione del primo messaggio di errore, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
283806  (http://support.microsoft.com/kb/283806/ ) Le funzioni di Visual Basic, Applications Edition (VBA) si interrompono in un database con riferimenti mancanti

Le informazioni in questo articolo si applicano a
  • Microsoft Access 2002 Standard Edition
Chiavi: 
kbfunctions kbdatabase kbdesign kbquery kbtshoot kbbug kberrmsg kbnofix KB275110
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.

Traduzione articoli

 

Related Support Centers