Referentieproblemen in een Access-database oplossen

Oorspronkelijk KB-nummer: 310803

Samenvatting

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

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

  • Access-databaseverwijzingen weergeven
  • Microsoft Visual Basic for Applications-verwijzingen in Access oplossen
  • Inzicht in referentiefoutmeldingen
  • Referentieproblemen op de ontwikkelcomputer oplossen
  • Databasebestanden distribueren
  • De referentielijst bijwerken
  • Databasebestanden met ActiveX-besturingselementen distribueren
  • Een bestand opnieuw registreren

Access-databaseverwijzingen weergeven

De huidige databaseverwijzingen weergeven:

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

Visual Basic-verwijzingen in Access oplossen

In Access wordt het relevante bestand (bijvoorbeeld een typebibliotheek, een objectbibliotheek of een besturingselementbibliotheek) geladen voor elke verwijzing, afhankelijk van de informatie die wordt weergegeven in het vak Verwijzingen. Als het bestand niet kan worden gevonden, voert Access de volgende procedures uit om het bestand te vinden:

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

Inzicht in referentiefoutmeldingen

Er zijn verschillende foutberichten die betrekking hebben op een ontbrekend bestand of een bestand met een andere versie 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 kunt u de fout vervolgens 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 van de naslagfoutberichten beschreven die u mogelijk ontvangt. Houd er echter rekening mee dat de lijst niet alle mogelijke verwijzingsfoutberichten bevat.

  • Methode MethodName van Object ObjectName is mislukt.

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

  • 'Functie is niet beschikbaar in gebruiksexpressie '

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

  • "Kan project of bibliotheek niet vinden"

    Mogelijk ontvangt u dit foutbericht als access geen bestand in de referentielijst kan vinden. Vaak wordt het bestand gemarkeerd als ontbrekend in het dialoogvenster Referenties. Soms bestaat het bestand op de ontwikkelcomputer, maar niet op de doelcomputer.

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

    Mogelijk ontvangt u een van deze foutberichten als u de wizard User-Level Beveiliging gebruikt om een database te beveiligen die verwijst naar andere bibliotheken dan de bibliotheken die standaard zijn opgenomen. Verwijzingen naar bibliotheken die in de niet-beveiligde database bestaan, worden bijvoorbeeld niet automatisch gemaakt in de nieuwe, beveiligde database.

  • 'Runtimefout 5', 'Ongeldige procedure-aanroep of argument', 'De bibliotheek met dit symbool wordt niet verwezen door het huidige project' of 'De bibliotheek met dit symbool wordt niet verwezen door het huidige project, dus het symbool is niet gedefinieerd'

    Mogelijk ontvangt u een van deze foutberichten als er een verwijzing is naar een database, een typebibliotheek of een objectbibliotheek die is gemarkeerd alsMissing.

  • 'ActiveX-onderdeel kan geen object maken'

    Dit foutbericht betekent niet noodzakelijkerwijs dat een ActiveX-besturingselement betrokken is. Een mogelijke oorzaak is bijvoorbeeld dat DAO, een ActiveX-onderdeel, geen object kan maken omdat de DAO Automation-server niet kan worden gestart. De oorzaak is vaak dat DLL's waarnaar wordt verwezen, niet zijn geregistreerd of onjuist zijn geregistreerd.

Referentieproblemen op de ontwikkelcomputer oplossen

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

  • Visual Basic for Applications
  • Microsoft Access 9.0-objectbibliotheek
  • OLE Automation
  • Microsoft ActiveX-gegevensobjecten (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. Verwijder de verwijzing naar de ADO 2.1-bibliotheek (indien aanwezig) en voeg de verwijzing toe aan de DAO 3.6-objectbibliotheek.

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

Een verwijzing naar een bibliotheek toevoegen:

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

Een verwijzing naar een bibliotheek verwijderen:

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

Databasebestanden distribueren

Er zijn twee eenvoudige distributiemethoden 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 worden vermeld in de referentielijst beschikbaar zijn, op het juiste versieniveau en op dezelfde relatieve locatie op de doelcomputer als op de ontwikkelcomputer.

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

Het volgen van bepaalde richtlijnen zorgt er meestal voor dat de versies van de bestanden die u gebruikt, geen conflict veroorzaken met bestanden op de doelcomputer wanneer u de runtimetoepassing installeert. Dit zijn de richtlijnen:

  1. Ontwikkel de Access-database op elke computer.
  2. Maak een computeromgeving waarin de harde schijf opnieuw is opgemaakt en waarbij alleen de vroegste versie van het toepasselijke besturingssysteem, van Office en van Office 2000 Developer is geïnstalleerd. Voer de wizard Pakket en implementatie uit op deze computer om de runtimeversie van de toepassing te maken. Dit zorgt ervoor dat de revisieniveaus van de bestanden op een van de doelcomputers werken.
  3. Maak een computeromgeving waarin de harde schijf opnieuw is opgemaakt en waar alleen het besturingssysteem is geïnstalleerd. Test de toepassing op run-time in deze omgeving.
    • Als de toepassing niet goed 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 met succes 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 betrekking heeft op een ActiveX-besturingselement, kunt u het probleem soms oplossen door de referentielijst te vernieuwen. De verwijzingslijst vernieuwen:

  1. Klik in de 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 op OK.
  3. Klik nogmaals op Verwijzingen in het menu Extra.
  4. Klik om de selectie van de verwijzing te annuleren en klik vervolgens op OK.

Databasebestanden met ActiveX-besturingselementen distribueren

Er zijn twee typen licenties voor ActiveX-besturingselementen: een ontwerplicentie en een runtimelicentie.

  • Met een ontwerplicentie kunt u gelicentieerde ActiveX-besturingselementen van Office 2000 Developer invoegen in formulieren en rapporten in een Access-database.
  • Met een runtimelicentie kunt u de ActiveX-besturingselementen in een Access-database gebruiken op een computer waarop Office 2000 Developer niet is geïnstalleerd, maar met een runtimelicentie kunt u geen nieuwe gelicentieerde ActiveX-besturingselementen invoegen. Als u een runtimelicentie 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 geschreven.

Een ontbrekende markering, die u kunt zien wanneer u een module opent in de ontwerpfase en vervolgens op Verwijzingen in het menu Extra klikt, geeft aan dat de verwijzing naar de Common Dialog control op de doelcomputer niet overeenkomt met de bron in het databasebestand van de ontwikkelcomputer.

Als u een databasebestand distribueert zonder het besturingselement Algemeen dialoogvenster te installeren, wordt de verwijzing van het besturingselement gemarkeerd als Ontbrekend of wordt er mogelijk een foutbericht weergegeven dat 'U beschikt niet over de licentie die vereist is voor het gebruik van dit ActiveX-besturingselement' als het niet-distribueerbare besturingselement al op de doelcomputer is geïnstalleerd.

Zelfs wanneer het databasebestand deel uitmaakt van een runtimetoepassing, wordt mogelijk het foutbericht weergegeven dat u niet over de licentie beschikt die is vereist voor het gebruik van dit ActiveX-besturingselement als het niet-distribueerbare besturingselement dat al op de doelcomputer is geïnstalleerd, een latere versie heeft dan het besturingselement dat wordt geleverd door uw runtimetoepassing. Dit probleem kan optreden omdat het installatieprogramma geen latere versies van een bestand met een eerdere versie van hetzelfde bestand overschrijft.

Een bestand opnieuw registreren

Het is mogelijk dat een bestand zich in de referentielijst bevindt zonder correct te worden geregistreerd in het register. Als u vermoedt dat dit het geval kan zijn, volgt u deze stappen om het bestand opnieuw te registreren:

  1. Klik in Microsoft Windows NT 4.0 opStart, wijs naarFind en klik vervolgens op Bestanden of mappen, of klik in Windows 2000 opStart, wijs Zoeken aan en klik vervolgens op 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 root 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 zich in het vak Openen bevindt.
  6. Sleep het Regsvr32.exe bestand vanuit het deelvenster met zoekresultaten naar het vak Openen .
  7. Herhaal stap 2 tot en met 6. Zoek deze keer naar FileName.dll, waarbij FileName de naam is van het bestand dat u opnieuw wilt registreren.
  8. Nadat het FileName.dll-bestand in het vak Openen staat met het Regsvr32.exe bestand, klikt u op OK.
  9. Test in Access of het probleem nog steeds bestaat.

Als u het Regsvr32.exe bestand niet op uw computer hebt, controleert u andere computers op het bestand. Als het bestand niet beschikbaar is, kunt u het bestand ophalen van de Website van Microsoft.

Opmerking

Vergeet niet om alle modules te compileren nadat u verwijzingen hebt aangepast. Als u alle modules wilt compileren, klikt u terwijl de module nog open is op Database compileren in het menu Debug. Als de modules niet worden gecompileerd, zijn er mogelijk aanvullende niet-opgeloste verwijzingen.