Řešení problémů s odkazy v databázi aplikace Access

Původní číslo KB: 310803

Souhrn

Tento článek popisuje problémy, které se týkají použití odkazů v databázi aplikace Access.

Pochopení chyb odkazů vyžaduje pochopení toho, jak jsou knihovny odkazovány v databázi aplikace Access, a toho, co je potřeba k instalaci databáze do cílového počítače bez porušení těchto odkazů. Tento článek je souhrnem následujících témat:

  • Zobrazení odkazů databáze aplikace Access
  • Řešení odkazů Microsoft Visual Basic for Application v aplikaci Access
  • Porozumění zprávám o chybách odkazu
  • Řešení problémů s odkazy na vývojovém počítači
  • Distribuce databázových souborů
  • Aktualizace seznamu odkazů
  • Distribuce databázových souborů, které mají ovládací prvky ActiveX
  • Opětovná registrace souboru

Zobrazení odkazů databáze aplikace Access

Zobrazení aktuálních odkazů na databázi:

  1. Otevřete databázi.
  2. Stisknutím kombinace kláves ALT+F11 spusťte Visual Basic Editor.
  3. V nabídce Nástroje klikněte na Odkazy.

Řešení odkazů Visual Basic v aplikaci Access

Access načte příslušný soubor (například knihovnu typů, knihovnu objektů nebo knihovnu ovládacích prvků) pro každý odkaz podle informací zobrazených v poli Odkazy. Pokud Access nemůže soubor najít, spustí následující procedury k vyhledání souboru:

  1. Access zkontroluje, jestli je odkazovaný soubor aktuálně načtený do paměti.
  2. Pokud soubor není načten v paměti, Access se pokusí ověřit, zda existuje klíč registruRefLibPaths. Pokud klíč existuje, Access vyhledá pojmenovanou hodnotu, která má stejný název jako odkaz. Pokud je nalezena shoda, Access načte odkaz z cesty, na kterou pojmenovaná hodnota ukazuje.
  3. Access poté vyhledá odkazovaný soubor v následujících umístěních v tomto pořadí:
    1. Složka Aplikace (umístění souboru Msaccess.exe).
    2. Aktuální složka, kterou uvidíte, když kliknete na Otevřít v nabídce Soubor.
    3. Složka Windows nebo Winnt, kde jsou spuštěny soubory operačního systému.
    4. Složka System ve složce Windows nebo Winnt.
    5. Složky v proměnné prostředí PATH, které jsou přímo přístupné operačním systémem.
  4. Pokud Access nemůže soubor najít, dojde k chybě odkazu.

Porozumění zprávám o chybách odkazu

Existuje několik chybových zpráv, které se týkají chybějícího souboru nebo souboru, který má jinou verzi, než je verze používaná v databázi. Ve většině případů můžete ve znalostní bázi Microsoft Knowledge Base vyhledat článek o konkrétní chybové zprávě a poté můžete chybu vyřešit podle kroků v tomto článku. V některých případech není závislý soubor správně spárován s primárním souborem.

V následujícím seznamu jsou popsány některé zprávy s chybami odkazu, které se mohou zobrazit. Seznam neobsahuje všechny možné zprávy s chybami odkazu.

  • „Metoda MethodName objektu ObjectName se nezdařila“

    Tato chybová zpráva se obvykle může zobrazit, pokud dojde k problému s knihovnou typů programování, například neplatným souborem dynamické knihovny (DLL) Data Access Object (DAO). Ve znalostní bázi Microsoft Knowledge Base můžete vyhledat články popisující různé formy této chybové zprávy.

  • „Funkce není k dispozici ve výrazu Použití

    Tato chybová zpráva se může zobrazit, pokud se jedná o problém s knihovnou programovacích typů nebo pokud kód výslovně nevyvolá správnou knihovnu a soubor je v seznamu odkazů uveden s nižší prioritou než soubor, který obsahuje stejný název funkce – například pokud se kód DAO používá s knihovnou technologie ActiveX Data Object (ADO), která je uvedená s vyšší prioritou než knihovna ROZHRANÍ DAO. Tato chybová zpráva se také může zobrazit, pokud formulář nebo sestava obsahuje ovládací prvek ActiveX.

  • „Nelze najít projekt nebo knihovnu“

    Tato chybová zpráva se může zobrazit, pokud Access nemůže najít soubor v seznamu odkazů. Soubor je často označen jako chybějící v dialogovém okně Odkazy. Někdy soubor existuje ve vývojovém počítači, ale ne v cílovém počítači.

  • „Proměnná není definovaná“ nebo „Uživatelem definovaný typ není definovaný“

    Pokud použijete Průvodce zabezpečením na uživatelské úrovni k zabezpečení databáze, která odkazuje na knihovny jiné než knihovny, které jsou zahrnuty ve výchozím nastavení, můžete obdržet jednu z těchto chybových zpráv. Například odkazy na knihovny, které existovaly v nezabezpečené databázi, nejsou automaticky vytvořeny v nové zabezpečené databázi.

  • „Chyba při spuštění 5“, „Neplatné volání nebo argument procedury“, „Na knihovnu, která obsahuje tento symbol, neodkazuje aktuální projekt“ nebo „Na knihovnu, která obsahuje tento symbol, neodkazuje aktuální projekt, takže symbol není definován"

    Pokud existuje odkaz na databázi, knihovnu typů nebo knihovnu objektů, která je označena jako chybějící, můžete obdržet jednu z těchto chybových zpráv.

  • „Komponenta ActiveX nemůže vytvořit objekt“

    Tato chybová zpráva nutně neznamená, že se jedná o ovládací prvek ActiveX. Jednou z možných příčin je například to, že DAO, což je součást ActiveX, nemůže vytvořit objekt, protože nelze spustit DAO Automation Server. Příčinou je často to, že knihovny DLL, které poskytují odkazované funkce pro program, nejsou zaregistrovány nebo jsou zaregistrovány nesprávně.

Řešení problémů s odkazy na vývojovém počítači

Vytvoření nové prázdné databáze a následný import objektů z jiného databázového souboru může způsobit problémy s odkazy, pokud kód nebo ovládací prvky ActiveX spoléhají na odkazy, které nejsou ve výchozím nastavení zahrnuty v databázi. Výchozí odkazy pro databázi Access 2000 jsou:

  • Visual Basic for Applications
  • Knihovna objektů Microsoft Access 9.0
  • Automatizace OLE
  • Knihovna Microsoft ActiveX Data Objects (ADO) 2.1

Pokud je zdrojem jiná databáze Access 2000, ověřte, že se odkazy shodují. Pokud je zdroj v dřívější verzi aplikace Access, pravděpodobně se používá DAO 3.5 nebo starší. Access 2000 však ve výchozím nastavení nepodporuje rozhraní DAO 3.5. Zkuste odebrat odkaz na knihovnu ADO 2.1 (pokud existuje) a přidat odkaz na knihovnu objektů DAO 3.6.

Pokud jste databázi převedli z dřívější verze aplikace Access a databáze obsahuje odkaz na soubor Utility.mda, ve většině případů můžete tento odkaz odebrat, protože funkce, které tento odkaz volá, jsou součástí výchozích odkazů v aplikaci Access 2000. Pokud existují odkazy na starší verze rozhraní DAO, můžete tyto odkazy odebrat, protože rozhraní DAO 3.6 může tyto funkce řešit.

Chcete-li přidat odkaz na knihovnu:

  1. Otevřete databázi.
  2. Stisknutím kombinace kláves ALT+F11 spusťte Visual Basic Editor.
  3. V nabídce Nástroje klikněte na Odkazy.
  4. V části Dostupné odkazy kliknutím zaškrtněte políčko vedle názvu knihovny a klikněte na tlačítko OK.

Chcete-li odstranit odkaz na knihovnu:

  1. Otevřete databázi.
  2. Stisknutím kombinace kláves ALT+F11 spusťte Visual Basic Editor.
  3. V nabídce Nástroje klikněte na Odkazy.
  4. V části Dostupné odkazy kliknutím zrušte zaškrtnutí políčka vedle názvu knihovny a klikněte na tlačítko OK.

Distribuce databázových souborů

Existují dvě základní metody distribuce databázových souborů. Soubor můžete zkopírovat z vývojového počítače do cílového počítače nebo můžete pomocí průvodce Package and Deployment Wizard vytvořit instalační balíček.

Pokud zkopírujete soubor z vývojového počítače do cílového počítače, zkopíruje se pouze soubor databáze. Musíte ručně zajistit, aby všechny soubory uvedené v seznamu odkazů byly dostupné, na správné úrovni verze a ve stejném relativním umístění na cílovém počítači jako na vývojovém počítači.

Při vývoji aplikací za běhu v aplikaci Access mějte na paměti, že některé soubory operačního systému musí být distribuovány s aplikací za běhu. Balení těchto souborů je prováděno automaticky komponentou Package and Deployment Wizard aplikace Microsoft Office 2000 Developer. Verze zahrnutých souborů někdy závisejí na jiných aplikacích, které jsou nainstalované na vývojovém počítači a které mohly změnit soubory operačního systému.

Dodržování určitých pokynů obvykle zajistí, že verze souborů, které používáte, nebudou při instalaci aplikace za běhu v konfliktu se soubory v cílovém počítači. Tady je postup:

  1. Vytvořte databázi aplikace Access na libovolném počítači.
  2. Vytvořte prostředí počítače, ve kterém je pevný disk přeformátovaný a kde je nainstalovaná jenom nejstarší verze příslušného operačního systému, Office a Office 2000 Developer. Spusťte Package and Deployment Wizard v tomto počítači a vytvořte runtime verzi aplikace. Tím zajistíte, že úrovně revizí souborů budou fungovat na libovolném cílovém počítači.
  3. Vytvořte prostředí počítače, ve kterém je pevný disk přeformátovaný a kde je nainstalovaný jenom operační systém. Otestujte runtime aplikaci v tomto prostředí.
    • Pokud se aplikace nespustí úspěšně, víte, že je něco špatně se samotnou aplikací. Před distribucí aplikace je potřeba problém identifikovat a opravit.
    • Pokud aplikace úspěšně funguje na testovacím počítači, ale nefunguje na cílovém počítači, víte, že je něco špatně na cílovém počítači, nikoli v aplikaci. Na cílovém počítači je potřeba identifikovat a opravit příčinu, pravděpodobně nekompatibilitu nebo poškozený soubor.

Aktualizace seznamu odkazů

Pokud se problém s odkazem týká ovládacího prvku ActiveX, můžete tento problém vyřešit aktualizací seznamu odkazů. Chcete-li aktualizovat seznam odkazů:

  1. Ve Visual Basic Editoru klikněte klikněte na Odkazy v nabídce Nástroje.
  2. V dialogovém okně Odkazy kliknutím vyberte odkaz, který ještě není vybrán, poznamenejte si, který z nich jste vybrali, a klikněte na tlačítko OK.
  3. V nabídce Nástroje klikněte znovu na Odkazy.
  4. Kliknutím zrušte výběr odkazu a poté klikněte na OK.

Distribuce databázových souborů, které mají ovládací prvky ActiveX

Existují dva typy licencí pro ovládací prvky ActiveX: vývojářská a runtime a licence.

  • Vývojářská licence vám umožňuje vkládat licencované ovládací prvky ActiveX z Office 2000 Developer do formulářů a sestav v databázi Accessu.
  • Runtime licence vám umožňuje používat ovládací prvky ActiveX v databázi Access v počítači, který nemá nainstalovanou sadu Office 2000 Developer, ale runtime licence vám neumožňuje vkládat nové licencované ovládací prvky ActiveX. Chcete-li nainstalovat runtime licenci, distribuujte ovládací prvky ActiveX pomocí nástroje Package and Deployment Wizard, který zapíše licenci pro ovládací prvky do registru cílového počítače.

Příznak Chybějící, který se může zobrazit, když otevřete modul v zobrazení Návrh a poté kliknete na Odkazy v nabídce Nástroje, znamená, že odkaz na ovládací prvek Common Dialog na cílový počítač neodpovídá zdroji v databázovém souboru z vývojářského počítače.

Pokud distribuujete databázový soubor bez instalace distribuovatelného ovládacího prvku Common Dialog, může být odkaz na ovládací prvek označen jako chybějící nebo se může zobrazit chybová zpráva „Nemáte licenci potřebnou k použití tohoto ovládacího prvku ActiveX“, pokud distribuovatelný ovládací prvek je již nainstalován na cílovém počítači.

I když je databázový soubor součástí runtime aplikace, můžete obdržet chybovou zprávu, že „Nemáte licenci potřebnou k použití tohoto ovládacího prvku ActiveX“, pokud je nedistribuovatelný ovládací prvek, který je již nainstalován v cílovém počítači novější verze, než je ovládací prvek, který poskytuje vaše runtime aplikace. K tomuto problému může dojít, protože instalační program nepřepíše novější verze souboru dřívější verzí stejného souboru.

Opětovná registrace souboru

Je možné, že soubor bude v seznamu odkazů, aniž by byl správně zaregistrován v registru. Pokud se domníváte, že by tomu tak mohlo být, postupujte podle následujících kroků a znovu zaregistrujte soubor:

  1. V systému Microsoft Windows NT 4.0 klikněte na tlačítko Start, přejděte na příkaz Najít a potom klikněte na položku Soubory nebo složky nebo v systému Windows 2000 klikněte na tlačítko Start, přejděte na položku Hledat a potom klikněte na položku Soubory a složky.
  2. Do pole S názvem nebo do pole Vyhledat soubory a složky s názvem zadejte regsvr32.exe.
  3. V poli Oblast hledání klikněte na kořenový adresář pevného disku (obvykle C:).
  4. Kliknutím zaškrtněte políčko Včetně podsložek, pokud již není zaškrtnuté, a potom klikněte na tlačítko Najít nebo Hledat.
  5. Po nalezení souboru klikněte na Start, klikněte na Spustit a poté odstraňte vše, co je v poli Otevřít.
  6. Přetáhněte soubor Regsvr32.exe z podokna výsledků hledání do pole Otevřít.
  7. Opakujte kroky 2 až 6, tentokrát vyhledejte FileName.dll, kde FileName je název souboru, který chcete znovu zaregistrovat.
  8. Poté, co je soubor FileName.dll v poli Otevřít se souborem Regsvr32.exe, klikněte na OK.
  9. V aplikaci Access otestujte, zda problém stále existuje.

Pokud soubor Regsvr32.exe v počítači nemáte, vyhledejte soubor v jiných počítačích. Pokud soubor není k dispozici, můžete jej získat z webu společnosti Microsoft.

Poznámka

Po úpravě odkazů nezapomeňte zkompilovat všechny moduly. Chcete-li zkompilovat všechny moduly se stále otevřeným modulem, klikněte na Zkompilovat databázi v nabídce Ladění. Pokud se moduly nezkompilují, mohou existovat další nevyřešené odkazy.