Hur Access löser Visual Basic for Applications referenser
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Ursprungligt KB-nummer: 824255
Anteckning
Den här artikeln gäller en Microsoft Access-databas (.mdb) och ett Microsoft Access-projekt (.adp). Kräver expertkodning, interoperabilitet och fleranvändarfärdigheter.
Sammanfattning
I den här artikeln beskrivs de olika uppgifter som Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Access 2002, Access 2000 eller Access 97 utför för att lösa referenserna i Microsoft Visual Basic for Applications (VBA).
Mer information
Viktigt
Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför instruktionerna noga, och säkerhetskopiera registret innan du gör några ändringar i det. Då kan du återställa registret om det uppstår problem. Om du vill ha mer information om hur du både kan backa och återställa registret kan du klicka på följande artikelnummer och läsa artikeln i Microsoft Knowledge Base: 322756 Hur du både kan göra och återställa registret i Windows
I Access kan du visa de VBA-referenser som är markerade med hjälp av Visual Basic Editor. Gör så här:
Starta Access.
Öppna en Access-databas.
Tryck på ALT +F11 för att öppna Visual Basic Editor.
I Visual Basic Editor klickar du på Referenser på menyn Verktyg.
I dialogrutan Referenser ser du de referenser som är markerade.
Anteckning
När du väljer en referens kan du också visa den information som motsvarar filen som måste läsas in för att kunna använda referensen.
Den relevanta filen kan vara ett typbibliotek, ett objektbibliotek eller ett kontrollbibliotek. Den relevanta filen för varje referens läses in enligt informationen som visas i dialogrutan Referenser. Men om filen inte hittas söker Access efter filen på olika platser på datorn.
För varje VBA-referens som är markerad utför Access följande uppgifter:
Access verifierar om den refererade filen redan har lästs in.
Access verifierar om
RefLibPathsregisternyckeln finns om den refererade filen inte har lästs in.Om
RefLibPathsregisternyckeln finns söker Access efter ett namngivet värde som har samma namn som referensen. Om det finns en matchning läses referensen in från den sökväg som nämns i det namngivna värdet.Anteckning
Du kan manuellt lägga till registernyckeln i registret och sedan lägga till namn och platser för tillägg eller bibliotek som
RefLibPathsfinns underRefLibPathsregisternyckeln. Gör så här:Klicka på Start och sedan på Kör.
Skriv regedit i rutan Öppna och klicka sedan på OK.
Leta reda på följande registernyckel i fönstret Registereditorn:
Access 2007:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\AccessAccess 2003:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\AccessAccess 2002:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\AccessAccess 2000:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\AccessAccess 97:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\AccessHögerklicka på Access-registernyckeln, peka på Nytt och klicka sedan på Nyckel.
Namnge den nya nyckeln
RefLibPaths.Klicka på RefLibPaths.
Högerklicka någonstans i det högra fönstret och klicka sedan på Strängvärde.
Namnge det nya strängvärdet genom att använda samma namn som VBA-referensen.
Högerklicka på strängvärdet som du skapade i steg 8 och klicka sedan på Ändra.
I dialogrutan Redigera sträng anger du platsen för den fil som måste läsas in för att motsvara referensen i VBA.
Registervärdenamnet måste vara filnamnet plus filnamnstillägget. Platsen (värdedata) måste vara sökvägen plus filnamnet. Om du till exempel anger en referens till Northwind-exempeldatabasen kan du lägga till följande värden:
- Värdenamn: Northwind.mdb
- Värdedata:
C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb
Upprepa steg 7 till steg 10 för att lägga till namn och lägga till lämpliga tillägg eller lämpliga bibliotek som strängvärden.
Klicka på Avsluta på Arkiv-menyn.
Access använderSearchPathAPI för att söka efter den refererade filen om registernyckeln RefLibPaths inte finns eller inte innehåller en korrekt referens. Följande sökningar utförs.
Sökområde Beskrivning Programkatalog Platsen för Msaccess.exe. Aktuell katalog Katalog som du ser om du klickar på Öppna på Arkiv-menyn. Systemkatalog Mappen System och System32 som finns i mappen Windows eller i WINNT-mappen. WinDir Mappen där operativsystemets filer körs. Det här är Windows mappen eller WINNT-mappen. PATH Miljövariabel Den här systemvariabeln innehåller en lista med mappar som är direkt tillgängliga för systemet. Microsoft Windows NT 4.0: Dubbelklicka på System på Kontrollpanelen och klicka sedan på fliken Miljö. Path-variabeln finns i listan Systemvariabler. Microsoft Windows 2000, Microsoft Windows XP och Microsoft Windows Server 2003: Dubbelklicka på System på Kontrollpanelen, klicka på fliken Avancerat och klicka sedan på Miljövariabler. SÖKVÄGen finns i listan Systemvariabler. Microsoft Windows Vista: Öppna objektet "System och underhåll" i Kontrollpanelen. Klicka på System, på Avancerade systeminställningar, på fliken Avancerat och sedan på Miljövariabler. SÖKVÄGen finns i listan Systemvariabler Filkatalog Mappen som innehåller .mdb-filen, .mde-filen, .adp-filen eller .ade-filen och undermappar.
Anteckning
Access kräver inte registernyckeln om filen som du vill referera till finns i någon av RefLibPaths katalogerna som nämns i tabellen.
Om Access inte hittar referensen får du följande felmeddelande när du kompilerar projektet eller när du försöker köra en procedur:
Din Microsoft Office Access-databas eller -projekt innehåller en saknad eller bruten referens till filnamnet.
*Du måste åtgärda referensen för att databasen eller projektet ska fungera ordentligt.
Anteckning
När databasen är öppen får du det föregående felmeddelandet en gång för varje felaktig referens.
Om du till exempel öppnar MyDatabase.mdb och MyDatabase.mdb saknar en referens till Microsoft Calendar Control och Microsoft DAO-biblioteket får du två felmeddelanden, ett för varje referens som saknas. Du får inte felmeddelandena igen om du inte korrigerar referenserna, stänger databasen och sedan öppnar du databasen igen. Om du åtgärdar referenserna och sedan sparar databasen får du inga felmeddelanden nästa gång du öppnar databasen.
Egenskapen BrokenReference
Programobjektet för Access har en BrokenReference egenskap som anger om några referenser bryts. Kontrollera egenskapen BrokenReference genom att följa de här stegen:
Starta Access.
Öppna en Access-databas.
Tryck på ALT +F11 för att öppna Visual Basic Editor.
Tryck på CTRL+G för att öppna direktfönstret.
I direktfönstret skriver du följande kommando och trycker sedan på RETUR:
?Application.BrokenReferenceObservera att egenskapen
BrokenReferenceför Application-objektet returnerar True om det saknas referenser. AnnarsBrokenReferencereturnerar egenskapen False.
Referenser
Om du vill ha mer information om referenser klickar du på Microsoft Visual Basic-hjälpen på Hjälp-menyn, skriver Referensersamling i rutan Sök efter i fönstret Hjälp och klickar sedan på Starta sökningen för att visa avsnittet.
Om du vill ha mer information om referenser som saknas klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:
283806 Visual Basic for Applications (VBA)-funktioner bryts i en databas med referenser som saknas