Wait is a custom function? A short pause after a query or similar action is performed, followed by the label caption change, followed by the Repaint method followed by another pause should do it. Worked for me, but I used a function to create the pause (usually 1 or 2 seconds will suffice). The trick was that pauses are required as I noted, otherwise any execution can begin before the screen has time to refresh, and we are talking nano seconds here. When control passes to Jet to process queries or table updates, the Access container is basically non-responsive. You may have seen this behaviour when you run a long query - nothing in the database window or vbe will respond to user mouse or keyboard inputs. So trying to repaint a form without a pause prior to running another query can cause the same effect. Here's why you shouldn't use Do Events to create waits in Access.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.