Otevírání dotazů (Query)
v programovém modulu (Module) nemusí být
vždy bez problémů. Použijeme běžného otevření dotazu:
Set R = D.OpenRecordset("QVyplatyPracovnici", DB_OPEN_DYNASET)
Objeví se však následující hlášení:
Obr. 16. Hlášení o nemožnosti otevřít dotaz
Jistě to autora nepotěší. Přitom samotný dotaz "QVyplatyPracovnici" je možno bez problémů otevřít, použít jako zdroj formuláře či sestavy. Problém je dobře skryt v definici dotazu, viz obr. 17.
Obr. 17. Dotaz, který nebylo možno v modulu otevřít
Z obrázku nás možná napadne důvod chybového hlášení. Tím je odkaz na položku formuláře, a to i přes to, že tento formulář je přístupný a tutéž položku můžeme v programu běžně adresovat. Nicméně při otevření dotazu v programu je tato položka chápána jako parametr a systém vyhlásil chybu (nezadaná hodnota parametru). Řešení spočívá v úpravě dotazu. Místo přímého odkazu na položku formuláře použijeme volání následující funkce a ihned je vše v pořádku.
Function FarmaAkt ()
As Variant ' ************************************************************ ' Funkce vrací název aktuální farmy z formuláře FFarmy ' ************************************************************ FarmaAkt = Forms![FFarmy]![Farma] End Function |