* If I was right about you initialising your controls with "" then I would advise you stop doing that and convert your Nulls to "" with Nz() alone. You will need to UPDATE all your fields to SET all zls to Null.
I am wrestling to see the difference VBA is imposing.
For string values, yes I have been reading controls with Nz(fldcontrol, "") and if it is a numeric field then either Nz(fldcontrol, 0) or Nz(fldcontrol, -1) depending on the code and if I can use 0/-1 as a null indicator value. (In this case, I should have been using -1 as a null indicator value, but that is besides the point since Nz is not working as needed.)
So in this case there was a true NULL in the database, thus that NULL got converted to "" by Nz when the record was populated into the Edit screen. Nothing was changed in that field, record was attempted to be committed, I was expecting Nz to realize that the field was still blank so select the default value instead. Nz did not work that way, thus the code blew up.
A long time ago I seem to recall a similar crash on a record ADD screen before I started using Nz() to read the field control values. I would bring up the ADD screen, try to COMMIT a blank form. BANG! Using Nz() solved that trouble, and I have been doing so ever since... until now. That a field which has never had anything typed into it has a different NULL value than a control which has had a character entered into it, then deleted. I guess I am failing to understand...
"'tis better to have loved and lost than to have never loved at all."
Thank you for your assistance, vbaInet... MUCH appreciated.
