I have an application using a SQL Server backend and linked tables using the ODBC Driver 18 for SQL Server. I have a table with a particular field that is defined as not nullable (because it is used in a unique composite index) that I populate with a zero length string when I don't have a specific value.

I have a form bound to a query that uses this table and it is not on the outer side of an outer join and therefore should never be null.

If I query either the table or the query in Access for any records where TABLE_MEMBER_NAME IS NULL no records are returned, whereas if I query for TABLE_MEMBER_NAME = "" I get records (as expected).
In my form, I call a function that I pass the form recordsetClone to. It is in the form recordsetClone (and recordset - I tried both) that the field value is returning NULL and I can't work out why. The form field control (me.form!TABLE_MEMBER_NAME) also returns null, even after I enter a zero length string into the field and save the record.

I running:
Microsoft® Access® for Microsoft 365 MSO (16.0.14326.20900) 64-bit
SQL Server Express 15.0.2080
ODBC Driver 18 for SQL Server, version 2018.180.01.01
**** I also tried it with the SQL Server Native Client version 11.00.7462 - same result.