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:

  1. Starta Access.

  2. Öppna en Access-databas.

  3. Tryck på ALT +F11 för att öppna Visual Basic Editor.

  4. I Visual Basic Editor klickar du på Referensermenyn 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 RefLibPaths registernyckeln finns om den refererade filen inte har lästs in.

    Om RefLibPaths registernyckeln 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 RefLibPaths finns under RefLibPaths registernyckeln. Gör så här:

    1. Klicka på Start och sedan på Kör.

    2. Skriv regedit i rutan Öppna och klicka sedan på OK.

    3. Leta reda på följande registernyckel i fönstret Registereditorn:

      Access 2007: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access

      Access 2003: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access

      Access 2002: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Access

      Access 2000: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\Access

      Access 97: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\Access

    4. Högerklicka på Access-registernyckeln, peka på Nytt och klicka sedan på Nyckel.

    5. Namnge den nya nyckeln RefLibPaths .

    6. Klicka på RefLibPaths.

    7. Högerklicka någonstans i det högra fönstret och klicka sedan på Strängvärde.

    8. Namnge det nya strängvärdet genom att använda samma namn som VBA-referensen.

    9. Högerklicka på strängvärdet som du skapade i steg 8 och klicka sedan på Ändra.

    10. 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
    11. 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.

    12. Klicka på AvslutaArkiv-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 Ö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,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:

  1. Starta Access.

  2. Öppna en Access-databas.

  3. Tryck på ALT +F11 för att öppna Visual Basic Editor.

  4. Tryck på CTRL+G för att öppna direktfönstret.

  5. I direktfönstret skriver du följande kommando och trycker sedan på RETUR:

    ?Application.BrokenReference

    Observera att egenskapen BrokenReference för Application-objektet returnerar True om det saknas referenser. Annars BrokenReference returnerar 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