Verwijzingsproblemen in een Access-database oplossen

Origineel KB-nummer: 310803

Samenvatting

In dit artikel worden problemen beschreven die betrekking hebben op het gebruik van verwijzingen in een Access-database.

Om fouten met verwijzingen te begrijpen, moet u begrijpen hoe naar bibliotheken wordt verwezen in een Access-database en wat nodig is om een database op een doelcomputer te installeren zonder deze verwijzingen te verbreken. Dit artikel is een overzicht van de volgende onderwerpen:

  • Access-databaseverwijzingen weergeven
  • Microsoft Visual Basic for Applications-verwijzingen oplossen in Access
  • Informatie over verwijzingsfoutberichten
  • Verwijzingsproblemen op de ontwikkelcomputer oplossen
  • Databasebestanden distribueren
  • De verwijzingslijst bijwerken
  • Databasebestanden distribueren met ActiveX besturingselementen
  • Een bestand opnieuw registreren

Access-databaseverwijzingen weergeven

De huidige databaseverwijzingen weergeven:

  1. Open de database.
  2. Druk op Alt+F11 om de Visual Basic Editor te openen.
  3. Klik in het menu Extra op Verwijzingen.

Het oplossen Visual Basic-verwijzingen in Access

Access laadt het relevante bestand (bijvoorbeeld een typebibliotheek, een objectbibliotheek of een besturingsbibliotheek) voor elke verwijzing, volgens de informatie die wordt weergegeven in het vak Verwijzingen. Als het bestand niet kan worden gevonden, worden in Access de volgende procedures uitgevoerd om het bestand te zoeken:

  1. Access controleert of het waarnaar verwezen bestand momenteel in het geheugen is geladen.
  2. Als het bestand niet in het geheugen is geladen, probeert Access te controleren of de registersleutel RefLibPaths bestaat. Als de sleutel bestaat, zoekt Access naar een benoemde waarde met dezelfde naam als de verwijzing. Als er een overeenkomst is, wordt de verwijzing geladen vanaf het pad waarnaar de benoemde waarde verwijst.
  3. Access zoekt vervolgens naar het bestand waarnaar wordt verwezen op de volgende locaties, in deze volgorde:
    1. De map Toepassing (de locatie van het bestand Msaccess.exe).
    2. De huidige map die u ziet als u op Openen klikt in het menu Bestand.
    3. De Windows- of Winnt-map waarin de besturingssysteembestanden worden uitgevoerd.
    4. De map Systeem onder de Windows- of Winnt-map.
    5. De mappen in de PATH-omgevingsvariabele die direct toegankelijk zijn voor het besturingssysteem.
  4. Als Access het bestand niet kan vinden, treedt er een verwijzingsfout op.

Informatie over verwijzingsfoutberichten

Er zijn verschillende foutberichten die betrekking hebben op een ontbrekend bestand of op een bestand dat een andere versie heeft dan de versie die in de database wordt gebruikt. In de meeste gevallen kunt u in de Microsoft Knowledge Base zoeken naar een artikel over het specifieke foutbericht en vervolgens de fout oplossen door de stappen in het artikel te volgen. In sommige gevallen komt een afhankelijkheidsbestand niet correct overeen met het primaire bestand.

In de volgende lijst worden enkele verwijzingsfoutberichten beschreven die u mogelijk ontvangt. Houd er echter rekening mee dat de lijst niet alle mogelijke verwijzingsfouten bevat.

  • 'Method MethodName of Object ObjectName Failed'

    Meestal kunt u dit foutbericht krijgen als er een probleem is met een programmeertypebibliotheek, bijvoorbeeld een ongeldig DLL-bestand (Data Access Object (DAO) dynamic-link library). U kunt in de Microsoft Knowledge Base zoeken naar artikelen waarin de verschillende vormen van dit foutbericht worden beschreven.

  • 'Functie is niet beschikbaar in de uitdrukking Gebruik'

    U ontvangt mogelijk dit foutbericht als er een probleem is met een bibliotheek met een programmeertype, of als de code niet specifiek de juiste bibliotheek oproept en het bestand met een lagere prioriteit in de verwijzingslijst wordt weergegeven dan een bestand met dezelfde functienaam, bijvoorbeeld als DAO-code wordt gebruikt met de ADO-bibliotheek (ActiveX Data Object) die met een hogere prioriteit wordt vermeld dan de DAO-bibliotheek. U kunt dit foutbericht ook krijgen als een formulier of rapport een ActiveX-besturingselement bevat.

  • 'Kan project of bibliotheek niet vinden'

    Mogelijk ontvangt u dit foutbericht als Access geen bestand kan vinden in de verwijzingslijst. Vaak wordt het bestand gemarkeerd als Ontbrekend in het dialoogvenster Verwijzingen. Soms bevindt het bestand zich op de ontwikkelcomputer, maar niet op de doelcomputer.

  • 'Variabele niet gedefinieerd' of 'Door de gebruiker gedefinieerd type niet gedefinieerd'

    U kunt een van deze foutberichten krijgen als u de wizard Beveiliging op gebruikersniveau gebruikt om een database te beveiligen die verwijst naar andere bibliotheken dan de bibliotheken die standaard worden meegeleverd. Verwijzingen naar bibliotheken die in de onbeveiligde database aanwezig waren, worden bijvoorbeeld niet automatisch gemaakt in de nieuwe, beveiligde database.

  • 'Run-time error 5', 'Ongeldige procedure-aanroep of argument', 'De bibliotheek die dit symbool bevat, wordt niet verwezen door het huidige project' of 'De bibliotheek die dit symbool bevat, wordt niet verwezen door het huidige project, dus het symbool is niet gedefinieerd'.

    U kunt een van deze foutberichten ontvangen als er een verwijzing is naar een database, een typebibliotheek of een objectbibliotheek die is gemarkeerd als Ontbrekend.

  • 'ActiveX component kan geen object maken'

    Deze foutmelding betekent niet noodzakelijk dat er een ActiveX-besturingselement bij betrokken is. Een mogelijke oorzaak is bijvoorbeeld dat DAO, een ActiveX-onderdeel, geen object kan maken omdat de DAO-automatiseringsserver niet kan starten. Vaak is de oorzaak dat DLL's die functionaliteit bieden waarnaar wordt verwezen voor het programma niet zijn geregistreerd of onjuist zijn geregistreerd.

Verwijzingsproblemen op de ontwikkelcomputer oplossen

Als u een nieuwe, lege database maakt en vervolgens objecten uit een ander databasebestand importeert, kunnen er verwijzingsproblemen ontstaan als de code of ActiveX-besturingselementen afhankelijk zijn van verwijzingen die niet standaard in een database zijn opgenomen. De standaardverwijzingen voor een Access 2000-database zijn:

  • Visual Basic for Applications
  • Microsoft Access 9.0-objectbibliotheek
  • OLE-automatisering
  • Microsoft ActiveX Data Objects (ADO) 2.1-bibliotheek

Als de bron een andere Access 2000-database is, controleert u of de verwijzingen overeenkomen. Als de bron zich in een eerdere versie van Access bevindt, is DAO 3.5 of eerder waarschijnlijk in gebruik. Access 2000 biedt echter niet standaard DAO 3.5. Probeer de verwijzing naar de ADO 2.1-bibliotheek (als deze bestaat) te verwijderen en de verwijzing toe te voegen aan de DAO 3.6-objectbibliotheek.

Als u de database van een eerdere versie van Access hebt geconverteerd en de database een verwijzing naar het bestand Utility.mda bevat, kunt u deze verwijzing in de meeste gevallen verwijderen omdat de functies die deze verwijzing aanroept, zijn opgenomen in de standaardverwijzingen in Access 2000. Als er verwijzingen zijn naar eerdere versies van DAO, kunt u deze verwijzingen ook verwijderen omdat DAO 3.6 deze functies kan adresseren.

Een verwijzing naar een bibliotheek toevoegen:

  1. Open de database.
  2. Druk op Alt+F11 om de Visual Basic Editor te openen.
  3. Klik in het menu Extra op Verwijzingen.
  4. Klik onder Beschikbare verwijzingen om het selectievakje naast de naam van de bibliotheek te selecteren en klik vervolgens op OK.

Een verwijzing naar een bibliotheek verwijderen:

  1. Open de database.
  2. Druk op Alt+F11 om de Visual Basic Editor te openen.
  3. Klik in het menu Extra op Verwijzingen.
  4. Schakel onder Beschikbare verwijzingen het selectievakje naast de naam van de bibliotheek uit en klik vervolgens op OK.

Databasebestanden distribueren

Er zijn twee basisdistributiemethoden voor databasebestanden. U kunt het bestand van de ontwikkelcomputer naar de doelcomputer kopiëren of u kunt de wizard Pakket en implementatie gebruiken om een installatiepakket te maken.

Als u het bestand van de ontwikkelcomputer naar de doelcomputer kopieert, wordt alleen het databasebestand gekopieerd. U moet er handmatig voor zorgen dat alle bestanden die in de lijst met verwijzingen staan, beschikbaar zijn, op het juiste versieniveau en op dezelfde relatieve locatie op de doelcomputer als op de ontwikkelcomputer.

Wanneer u runtime-toepassingen in Access ontwikkelt, moet u er rekening mee houden dat sommige besturingssysteembestanden met de runtime-toepassing moeten worden gedistribueerd. De verpakking van deze bestanden wordt automatisch uitgevoerd door het onderdeel Wizard Pakket en implementatie van Microsoft Office 2000 Developer. Soms zijn de versies van de bestanden die worden meegeleverd, afhankelijk van andere toepassingen die op de ontwikkelcomputer zijn geïnstalleerd en die de besturingssysteembestanden mogelijk hebben gewijzigd.

Als u bepaalde richtlijnen volgt, zorgt u er gewoonlijk voor dat de versies van de bestanden die u gebruikt niet conflicteren met bestanden op de doelcomputer wanneer u de runtime-toepassing installeert. Hier volgen de richtlijnen:

  1. Ontwikkel de Access-database op een computer.
  2. Maak een computeromgeving waarin de harde schijf opnieuw is geformatteerd en waar alleen de vroegste versie van het toepasselijke besturingssysteem, van Office en van Office 2000 Developer is geïnstalleerd. Voer de wizard Pakket en implementatie op deze computer uit om de runtime-versie van de toepassing te maken. Dit zorgt ervoor dat de revisieniveaus van de bestanden op alle doelcomputers werken.
  3. Maak een computeromgeving waarin de harde schijf opnieuw is geformatteerd en waar alleen het besturingssysteem is geïnstalleerd. Test de runtime-toepassing in deze omgeving.
    • Als de toepassing niet wordt uitgevoerd, weet u dat er iets mis is met de toepassing zelf. U moet het probleem identificeren en corrigeren voordat u de toepassing distribueert.
    • Als de toepassing goed werkt op de testcomputer, maar niet werkt op de doelcomputer, weet u dat er iets mis is op de doelcomputer in plaats van in de toepassing. U moet de waarschijnlijke oorzaak op de doelcomputer identificeren en corrigeren, waarschijnlijk een incompatibiliteit of een beschadigd bestand.

De verwijzingslijst vernieuwen

Als het verwijzingsprobleem een ActiveX-besturingselement betreft, kunt u het probleem soms oplossen door de verwijzingslijst te vernieuwen. De verwijzingslijst vernieuwen:

  1. Klik in Visual Basic Editor op Verwijzingen in het menu Extra.
  2. Klik in het dialoogvenster Verwijzingen om een verwijzing te selecteren die nog niet is geselecteerd, noteer welke u selecteert en klik vervolgens op OK.
  3. Klik in het menu Extra nogmaals op Verwijzingen.
  4. Klik om de selectie van de verwijzing te annuleren en klik vervolgens op OK.

Databasebestanden met ActiveX-besturingselementen distribueren

Er zijn twee soorten licenties voor ActiveX-besturingselementen: een ontwerptijdlicentie en een runtime-licentie.

  • Met een ontwerptijdlicentie kunt u gelicentieerde ActiveX-besturingselementen van Office 2000 Developer invoegen in formulieren en rapporten in een Access-database.
  • Met een runtime-licentie kunt u de ActiveX-besturingselementen in een Access-database gebruiken op een computer waarop Office 2000 Developer niet is geïnstalleerd, maar met een runtime-licentie kunt u geen nieuwe gelicentieerde ActiveX-besturingselementen invoegen. Als u een run-timelicentie wilt installeren, distribueert u de ActiveX-besturingselementen met behulp van de wizard Pakket en implementatie, waarmee de licentie voor de besturingselementen in het register van de doelcomputer wordt opgeslagen.

Een ontbrekende vlag, die u mogelijk ziet wanneer u een module opent in de ontwerpweergave en vervolgens op Verwijzingen klikt in het menu Extra, geeft aan dat de verwijzing naar het besturingselement Gemeenschappelijk dialoogvenster op de doelcomputer niet overeenkomen met de bron in het databasebestand van de ontwikkelcomputer.

Als u een databasebestand distribueert zonder het besturingselement Gemeenschappelijk dialoogvenster te installeren, wordt de verwijzing van het besturingselement mogelijk gemarkeerd als Ontbrekend of ontvangt u een foutbericht dat 'U niet beschikt over de vereiste licentie om dit ActiveX-besturingselement te gebruiken' als het niet-distribueerbare besturingselement al op de doelcomputer is geïnstalleerd.

Zelfs wanneer het databasebestand deel uitmaakt van een runtime-toepassing, kunt u de foutmelding krijgen dat 'U beschikt niet over de vereiste licentie om dit ActiveX-besturingselement te gebruiken' als het niet-distribueerbare besturingselement dat al op de doelcomputer is geïnstalleerd, van een latere versie is dan het besturingselement dat wordt geleverd door uw runtime-toepassing. Dit probleem kan optreden omdat het installatieprogramma latere versies van een bestand niet overschrijft met een eerdere versie van hetzelfde bestand.

Een bestand opnieuw registreren

Het is mogelijk dat een bestand in de verwijzingslijst staat zonder dat het correct is geregistreerd in het register. Als u vermoedt dat dit het geval is, volgt u de volgende stappen om het bestand opnieuw te registreren:

  1. Klik in Microsoft Windows NT 4.0 op Start, wijs Zoeken aan en klik vervolgens op Bestanden of mappen of klik in Windows 2000 op Start, wijs Zoeken aan en klik vervolgens op Voor bestanden en mappen.
  2. Typ in het vak Benoemd of in het vak Zoeken naar bestanden en mappen met de naamregsvr32.exe.
  3. Klik in het vak Zoeken in op de hoofdmap van de harde schijf (meestal C:).
  4. Klik om het selectievakje Submappen opnemen in te schakelen als dit nog niet is geselecteerd en klik vervolgens op Nu zoeken of Nu zoeken.
  5. Nadat u het bestand hebt gevonden, klikt u op Start, klikt u op Uitvoeren en verwijdert u alles wat in het vak Openen staat.
  6. Sleep het bestand Regsvr32.exe van het venster met zoekresultaten naar het vak Openen.
  7. Herhaal stap 2 tot en met 6, zoek deze keer naar Bestandsnaam.dll, waarbij Bestandsnaam de naam is van het bestand dat u opnieuw wilt registreren.
  8. Nadat het bestand FileName.dll in het vak Open staat met het bestand Regsvr32.exe, klikt u op OK.
  9. Test in Access of het probleem nog steeds bestaat.

Als u het bestand Regsvr32.exe niet op uw computer hebt staan, controleert u op andere computers of het bestand aanwezig is. Als het bestand niet beschikbaar is, kunt u het downloaden van de Microsoft-website.

Opmerking

Vergeet niet om alle modules te compileren nadat u de referenties hebt aangepast. Om alle modules te compileren, terwijl de module nog open is, klikt u op Database compileren in het menu Foutopsporing. Als de modules niet compileren, kunnen er extra onopgeloste verwijzingen zijn.