Přechod na MS Access 2010

Tento článek popisuje změny při převodu zákaznických řešení na Access 2010 z Access 2003.

Moduly

Každý modul obsahuje seznam funkcí, kterými disponuje v tabulce Menu_agend.

V poli OnAction mohl být dříve napsán přesný název funkce např. =toADRUdajeZRejstriku().

Pro správnou funkčnost pod Accessem 2010 a novějším se do pole OnAction musí zapsat volání funkce přes funkci RunRun.
Např. =RunRun("<SlozkaVaria>\Moduly\Adresar\Adresar.toADRUdajeZRejstriku").
Původní zápis by nefungoval na moderním vzhledu.

Vlastnost SourceObject podformuláře nebo podsestavy

Pokud je třeba nastavit zdrojový podformulář pro prvek podformuláře přes vlastnost SourceObject, je vhodné nastavit tento podformulář přes proceduru Sub NastavitZdrojPodFormulare(podFormular As SubForm, ByVal zdrojovyObjekt As String).

Access 2010 a novější totiž ve chvíli přiřazení podformuláře přes vlastnost SourceObject může nastavit vlastní řídící a dceřiné propojovací pole, které nemusí odpovídat původním.

Optimalizace Selectu pro Access 2010

Funkce načtení zobrazení agend v prostředí Access 2010 a vyšším s daty na SQL serveru přistupuje k datům agendy až v okamžiku zobrazení agendy. Díky tomu je rychlejší a šetří tak zdroje SQL serveru.

  • Tato optimalizace je defaultně zapnuta (true). I pokud parametr "true" není uveden, je zapnuta.

[Debug]
ZobrazeniOdpojitRSFormulare=true

  • Pouze v případě, že v souboru Vario.ini v datovém profilu (platí pro všechny uživatele), nebo v souboru Vario.ini ve složce Varia (platí pro konkrétní počítač), uvedete parametr "false", optimalizaci vypnete.

[Debug]
ZobrazeniOdpojitRSFormulare=false

  • Všechny SQL výrazy všech zobrazení, ve kterých jsou použity parametry a ve kterých není uvedena předávací varianta, musí obsahovat sekci PARAMETERS s jejich deklarací. Zobrazení, která tyto dotazy používají, nemohou být optimalizována. Optimalizace se zároveň netýká zobrazení bez předávací varianty, ve kterých je použit agregační dotaz (GROUP BY), v tomto případě by se jednalo spíše o zpomalení.
  • Formuláře agend nesmí mít napevno nastaveno řazení a filtr (vlastnosti OrderBy a Filter). O to se musí postarat SQL výraz dotazu daného zobrazení. V opačném případě se uživateli zobrazí výzva k zadání hodnoty parametru. Zobrazení se však nakonec zavede správně, nejedná se tedy o kritickou chybu.
  • V události formuláře agendy Current musí být před voláním

Me.RecordsetClone.Movelast

uvedeno

On Error Resume Next

Ostatní

  • Access 2010 nesprávně vyhodnocuje akcelerátory, pokud jsou použity na ovládacích prvcích umístěných na záložkách.
    • Ve Variu jsme tuto chybu opravili centrálně.
  • Další nepěknou vlastností nového Accessu je vracení focusu na první MDI okno při zavření plovoucího okna. Příkladem může být otevření firmy z dokladu, kdy po zavření firmy se nepřesune focus zpět na doklad, ale na tabulku agendy.
    • Ve Variu jsme tuto chybu opravili centrálně.