Johan,
I constantly get stuck with this - Bruce keeps correcting me. So here is it. There is NO FORM! It does NOT EXIST!. So, when user is on "Same FORM" - that really does NOT MEAN ANYTHING!.
Bruce said "Think of the Form as a series of EVENTS" - User sends a Request EVENT to server and Server Responds. Then the connection is CLOSED. If you open a form, THe record is read into SESSION variables and the Record itself is GONE!. So, Everything you do is an EVENT. Because the SESSION ID is passed back and forth between the User ( Browser ) and Server, the SERVER VALUES are always accessible by SessionID - the record itself is NOT available. At the End of the form - when you press SAVE or DONE - the Server is instructed to fetch the record and update it with the ServerValues for that session ID. Does that make sense?
I am doing some things like your user. I am pulling out a record and putting some settings in it. Then the user ( still on the same MemForm) is pressing buttons to do different actions. For each of these actions, I have to take their new values, Stuff them into the Session Values, fetch the record and write them to the record itself.
In other words, the Session Values are the thing that the user is interacting with ( as a representation of the record itself..). Therefore if you are going to do a partial save, Update the Session variables. At this point I am going to fetch the record and write the values directly to the record and update it without using the p_web.recordtovalue and p_web.Values to Record functions. (Not sure that these are the correct names but they are in the p_web settings. i will keep the Session values updated as they are the "representative state" of the "record". At the end, I could to a values to record save but I might just roll my own and update the fields that i want.
Since the Updates to the record are under YOUR CONTROL in the EMBEDS - you can check to make sure that your data got written to the record with the
If not Access:File.Update() = Level:Benign
then ALERT USER.
You can also use the Access:File.tryUpdate() function.
Hope that this explanation helps you.
Ron