If Err.Number <> 0 then
is reached it executes the interior decision art of the if-then endif statement as "if Err.Number <> 0" is true.
Of course it does. If no error hasn't been raised, it will execute because the error number is zero. That's what "If Error number <> 0" means. If it is anything other than 0, an error occurred, so don't process the If block is what the code is saying. You can't always get a hint by mousing over things. Variables most of the time, yes. But this is a property of the Error object and as such, these things don't always respond that way. You can usually go further with this by using the Immediate window, where you "ask" Access about something by prefacing it with a question mark. So to check if an error has been raised, there you would type ?Err.Number and hit return.
Now I am pretty sure that there are no errors yet this execution of the program implies that Err.number has a value other than 0.
No it doesn't. Rather than repeat myself to address that part of your statement, just re-read my explanation if necessary. You could post the relevant code if you want some explanation in English terms rather than just how vba expresses itself.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.