Har du nogensinde haft et Access-fejlnummer, men ikke fejlmeddelelsen, der forklarer, hvad det er?
AccessError()
funktion er en hurtig måde at få fejlmeddelelsen forbundet med et Access-fejlnummer:
The Pipe Placeholder Character
Rørtegnet (|
) er en lodret streg (tilgængelig via [Shift] + [\] {backslash} på et engelsk tastatur).
AccessError-funktionen bruger dette tegn som en pladsholder for instansspecifik tekst i en fejlmeddelelse.
For eksempel er Access Error 3211 "... kunne ikke låse tabellen '|' ..." Røretegnet i den generiske meddelelse erstattes med den faktiske streng, der blev brugt i den kodelinje, der viste fejlmeddelelsen:
Officiel dokumentation
AccessError-funktionen er faktisk en metode til Access.Application-objektet. Her er en beskrivelse af, hvad den gør fra den officielle dokumentation:
Du kan bruge AccessError metode til at returnere den beskrivende streng forbundet med en Microsoft Access- eller Data Access Objects-fejl (DAO).
Det er værd at bemærke, at dette er en Microsoft Adgangsspecifik fungere. Med andre ord ville du ikke være i stand til at kalde det fra et andet Office-program, såsom Excel eller Word.*
(* Dette er ikke teknisk sandt. Du kan oprette et Access Application-objekt via COM i et hvilket som helst VBA-miljø og derefter være i stand til at kalde AccessError-metoden fra det objekt. Det ville selvfølgelig kun være nyttigt, hvis du vil kontrollere Adgangsspecifikke fejlmeddelelsesstrenge i det andet Office-program, hvilket virker usandsynligt.)
Brugssager
Helt ærligt, jeg kan aldrig huske at have brugt denne metode inde i min applikationskode.
Dette er en funktion, som jeg næsten udelukkende bruger fra det øjeblikkelige vindue, når jeg bare vil have en hurtig måde at bestemme, hvad et Access-fejlnummer repræsenterer.
Dette ville være mest nyttigt, hvis du stødte på en fejlbehandler, der havde en Select Case Err.Number
blok og hele den individuelle Case
udsagn brugte tal uden ledsagende kommentarer, som dette:
Select Case Err.Number
Case 2452
'Do something
Case 2455
'Do a different thing
Case 2467
'Do something else
End Select
Bevæbnet med AccessError-metoden kan du forbedre denne kode ved at tilføje en kommentar med en kort beskrivelse af hvert fejlnummer:
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
Overvejelser til integration af fejldatabase
Hvis du bruger en fejldatabase – som FogBugz – der tilbyder en funktion til at gruppere fejl baseret på deres beskrivelse, vil du måske bruge den generiske fejlmeddelelse i emnet for fejlrapporten (eller hvilket felt grupperingen nu gør) og fange den specifikke fejlmeddelelse i fejlbegivenhedsdetaljefeltet.
Jeg diskuterer dette problem i forbindelse med min brugerdefinerede fejludsendelsesfunktion her:Throwing Errors in VBA:Bug Database Integration Issues.