Měli jste někdy číslo chyby Access, ale ne chybovou zprávu, která vysvětluje, co to je?
AccessError()
Funkce je rychlý způsob, jak získat chybovou zprávu spojenou s číslem chyby Access:
Zástupný znak potrubí
Znak svislé čáry (|
) je svislý pruh (dostupný pomocí [Shift] + [\] {obrácené lomítko} na anglické klávesnici).
Funkce AccessError používá tento znak jako zástupný symbol pro text specifický pro instanci v chybové zprávě.
Například chyba přístupu 3211 je "...nelze zamknout tabulku '|' ..." Znak svislé čáry v obecné zprávě je nahrazen skutečným řetězcem, který byl použit v řádku kódu, který vyvolal chybovou zprávu:
Oficiální dokumentace
Funkce AccessError je ve skutečnosti metodou objektu Access.Application. Zde je popis toho, co dělá z oficiální dokumentace:
Můžete použít AccessError metoda k vrácení popisného řetězce přidruženého k chybě Microsoft Access nebo Data Access Objects (DAO).
Stojí za zmínku, že se jedná o Microsoft Specifický přístup funkce. Jinými slovy, nebudete jej moci zavolat z jiné aplikace Office, jako je Excel nebo Word.*
(* Toto není technicky pravda. Mohli byste vytvořit objekt Access Application přes COM v libovolném prostředí VBA a poté být schopni volat metodu AccessError z tohoto objektu. Samozřejmě by to bylo užitečné, pouze pokud byste chtěli zkontrolovat Řetězce chybových zpráv specifické pro přístup v této jiné aplikaci Office, což se zdá nepravděpodobné.)
Případy použití
Upřímně, nikdy si nepamatuji, že bych tuto metodu používal v kódu své aplikace.
Toto je funkce, kterou používám téměř výhradně z okna Immediate Window, když chci rychlý způsob, jak zjistit, co představuje číslo chyby Access.
To by bylo nejužitečnější, pokud byste narazili na obslužný program chyb, který měl Select Case Err.Number
blok a všechny jednotlivé Case
výroky používaly čísla bez doprovodných komentářů, jako je tento:
Select Case Err.Number
Case 2452
'Do something
Case 2455
'Do a different thing
Case 2467
'Do something else
End Select
Vyzbrojeni metodou AccessError můžete tento kód vylepšit přidáním komentáře se stručným popisem každého čísla chyby:
Select Case Err.Number
Case 2452 'invalid reference to the Parent property
'Do something
Case 2455 'invalid reference to the property
'Do a different thing
Case 2467 'expr refers to object that is closed or doesn't exist
'Do something else
End Select
Úvahy o integraci databáze chyb
Pokud používáte databázi chyb – jako je FogBugz – která nabízí funkci seskupování chyb na základě jejich popisu, možná budete chtít použít obecné chybová zpráva v předmětu hlášení o chybě (nebo v kterémkoli poli tvořícím seskupení) a zachyťte konkrétní chybová zpráva v poli podrobností události chyby.
Diskutuji o tomto problému v kontextu mé vlastní funkce vyvolání chyb zde:Chyby vyvolání ve VBA:Problémy s integrací databáze chyb.