sql >> Databáze >  >> RDS >> Access

Vyhledávání chybového čísla zprávy

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.

Odkazované články

Házení chyb ve VBAPředstavujeme alternativu Err.Raise bez tření. Už nesetMike Wolfe
  1. Rozumíte segmentům Lob (SYS_LOB) v oracle?

  2. Nahraďte jednoduché uvozovky v SQL Server

  3. Jak vybudovat flaskovou aplikaci na již existující databázi?

  4. Jak funguje funkce Time() v SQLite