I've been working on a nice access database with bound forms, and from the beginning I have enjoyed the convenience of being able to EDIT the Bound Field's Value with a one-word reference:

myField="new data"

and let Access do the busy work with recordset.

However, as my database got more and more complex, I've found that this method doesn't "Always" work. Sometimes the value never gets updated.

I've found that it works more reliably to update the field by bypassing the bound form and accessing the recordset directly:

Form.Refresh 'Write any pending changes in the bound form to the recordset
Form.Recordset.Edit 'Bypass the form and lock the recordset for direct edit
Form.Recordset!myField="new data"

As a sidenote, I just switched to SQL Server-based tables (not client/server mode), and now I've found that NONE of my bound field VBA edits work and that I ALWAYS have to use the Recordset directly for any edits in code, as in the 2nd example.

Perhaps this is best, because it has turned out to be the more reliable method. If I'm just missing something here, please let me know! Please Give me your thoughts/opinions.

Sam Alter, Consultant
Aaron's Computer Relief
San Diego, CA

PS Yes, I ALWAYS use form.refresh or form.requery before messing with filters or record positions.