Here is the problem: You can intercept a whole lot of errors, particularly the ones with negative numbers. But those are usually SYSTEM-intercepted errors, not Access Run-Time errors. If it is a math error, you can probably do something with it, but there are literally thousands of possible errors. And if you are using an application object (Excel, Word, Outlook) then add a few thousand more possibilities.
Further, if it is a "real" fatal error then it is a tossup as to whether you will even get the chance. If the error in hexadecimal starts with 8 (0h8xxxxxxx, i.e. bit 31 is set but not bit 30) then maybe you could handle it. If it starts with C (0hCxxxxxxx, i.e. bits 31 & 30 are set) then step away from the curb. Those are catastrophic Windows errors where options probably would be taken away from you anyway. If you have "rolled your own" errors, then the numbers won't be 0h8 or 0hC but something else, because the next bit in sequence is a "customer-defined" flag.
The errors are encoded to form a 32-bit severity-facility-error combination. The low half of the error is specific to the error. The severity is in the high-order 5 bits. The 11 bits from 16-26 are facility codes - as in Excel, Access, Word, etc. or Windows itself.
The error mapping is described here:
[German]In case of error Windows reports a cryptic error code instead of a detailed error description. Within this blog post I will try to give a few hints to decode this Windows error codes. If Windows reports an error (like code 1605) it’s not clear for what this code stands for. In most cases...
borncity.com
The "low" error numbers for SYSTEM errors are found here:
docs.automic.com