by default, MS Access sets linked tables with "unlimited" NUMERIC to DECIMAL with "precision: 28" and "decimals: 6" (MS Access names). Trying to read a value [INSERT INTO public.demo VALUES (1.0 / 3)] breaks with an error.
When creating the column using NUMERIC(28, 24), MS Access shows this: "precision: 28" and "decimals: 24". And there's no error.
Funny, when creating the column using NUMERIC(32, 28), MS Access interprets it as TEXT with field length 32.
NUMERIC(28,27) is the last column type, MS Access can read as DECIMAL.
A view on an "unlimited" NUMERIC with casting ::NUMERIC(28, 24) is accepted by Access. So it seems like I need to create a VIEW as a work-around.
Sounds like this is something the ODBC driver could work around, by exposing the option to clamp the reported NUMERIC scale and precision.