In a copy of this query substitute an actual invoice number and run it. Assuming you haven't disabled warnings, you should see how many records it will affect vs how many you think that it should. If it appears that it will work, your form field is likely not returning anything to the query. Maybe it's not being updated before the query runs. Maybe it's unbound, which will compound the non-update effect, in which case you probably need to retrieve the control Text property.
I think you have redundant data. If the paid date is null, there is no payment, yes? Then you don't need a check field for that.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.