Access
 sql >> Baza danych >  >> RDS >> Access

Dostęp do wyszukiwania komunikatów o numerach błędów

Czy kiedykolwiek miałeś numer błędu programu Access, ale nie komunikat o błędzie wyjaśniający, co to jest?

AccessError() funkcja to szybki sposób na uzyskanie komunikatu o błędzie związanego z numerem błędu dostępu:

Znak zastępczy rury

Znak potoku (| ) to pionowa kreska (dostępna przez [Shift] + [\] {backslash} na angielskiej klawiaturze).

Funkcja AccessError używa tego znaku jako symbolu zastępczego dla tekstu specyficznego dla instancji w komunikacie o błędzie.

Na przykład błąd dostępu 3211 to „... nie można zablokować tabeli '|' ...”  Znak potoku w ogólnej wiadomości jest zastępowany rzeczywistym ciągiem używanym w wierszu kodu, który spowodował wyświetlenie komunikatu o błędzie:

Oficjalna dokumentacja

Funkcja AccessError jest w rzeczywistości metodą obiektu Access.Application. Oto opis tego, co robi z oficjalnej dokumentacji:

Możesz użyć AccessError metoda zwracająca opisowy ciąg skojarzony z błędem Microsoft Access lub Data Access Objects (DAO).

Warto zauważyć, że jest to Microsoft Zależne od dostępu funkcjonować. Innymi słowy, nie będziesz w stanie wywołać go z innej aplikacji pakietu Office, takiej jak Excel lub Word.*

(* To nie jest technicznie prawda. Możesz utworzyć obiekt aplikacji Access przez COM w dowolnym środowisku VBA, a następnie móc wywołać metodę AccessError z tego obiektu. Oczywiście byłoby to przydatne tylko wtedy, gdy chcesz sprawdzić Komunikaty o błędach specyficzne dla dostępu w tej innej aplikacji pakietu Office, co wydaje się mało prawdopodobne).

Przypadki użycia

Szczerze mówiąc, nie pamiętam, abym kiedykolwiek używał tej metody w kodzie mojej aplikacji.

Jest to funkcja, której używam prawie wyłącznie z okna bezpośredniego, gdy chcę tylko szybkiego sposobu określenia, co oznacza numer błędu programu Access.

Byłoby to najbardziej przydatne, gdybyś natknął się na moduł obsługi błędów, który miał Select Case Err.Number blok i wszystkie indywidualne Case w stwierdzeniach użyto liczb bez towarzyszących komentarzy, na przykład:

    Select Case Err.Number
    Case 2452   
        'Do something
    Case 2455   
        'Do a different thing
    Case 2467   
        'Do something else
    End Select

Uzbrojony w metodę AccessError, możesz poprawić ten kod, dodając komentarz z krótkim opisem każdego numeru błędu:

    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

Uwagi dotyczące integracji bazy danych błędów

Jeśli używasz bazy danych błędów, takiej jak FogBugz, która oferuje funkcję grupowania błędów na podstawie ich opisu, możesz użyć ogólnego komunikat o błędzie w temacie zgłoszenia błędu (lub w jakimkolwiek polu grupującym) i przechwyć konkretne komunikat o błędzie w polu szczegółów zdarzenia błędu.

Omawiam ten problem w kontekście mojej niestandardowej funkcji zgłaszania błędów tutaj:Throwing Errors in VBA:Bug Database Integration Issues.

Artykuły referencyjne

Zgłaszanie błędów w VBA Przedstawiamy bezproblemową alternatywę dla Err.Raise. Nie można już ustawićMike Wolfe
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korupcja MS Access, część 2:Najlepsze praktyki w zakresie zapobiegania i odzyskiwania

  2. Funkcje statyczne i subs

  3. Cztery powszechne mity dotyczące technologii chmury

  4. Jak uzyskać dostęp do wbudowanego szablonu CRM w programie Microsoft Access

  5. Tworzenie i dostęp do baz danych i tabel OLTP w pamięci