Code:
I can see that it was a mistake to use the Autonumber field.
The Autonumber field is a very important data type within Access. However it has a specific purpose. Most everyone will use Autonumber as the Primary Key. In your case, I would use it as the PK and create another field for the invoice number everyone sees. This additional field would be considered a Business Key and the Autonumber would be the Primary Key.
Code:
In lieu of this when a new invoice is needed I had thought to scan each record from the current day looking for a numbered record that has little or no information in the user fields and use that record first before creating a new record.
It is an interesting thought to avoid many voided records. However, what happens if someone orphans a number at 5PM? Your approach would not see this until the next time your validation code ran, the following day. You would still need additional code to explain orphans/voided records.
Code:
I thought I might concatenate all the fields from a record and then calculate the size of the resulting string.
I do not know if this is appropriate. Why not check to see if any of the required fields are complete? You can do this data validation at the time of data entry. If validation fails, refuse to close the form and give the option for the User to delete. Using your suggested approach seems to leave chance as the deciding factor whether or not to delete.