The code is updating an "Record in Use" type of field. I can't use the
BeforeUpdate as I need the field to be updated to prevent other users from
attempting to update same record.
I figured out another way - on the edit click, I check to see if the record
is in use, if it's not, I set it and save it (using the DoCmd.RunCommand
acCmdSaveRecord). On the Cancel click, if it's dirty, I undo (removing the
changes made on the window), then regardless of if dirty or not, update the
Record in Use to null and save the record before setting the allowupdates to
false.
Seems to be working okay.
Thanks for the tip on the saving.
"Graham Mandeno" wrote:
> Hi cmw
>
> What are the fields that you are changing in code? Can you post the code
> for your Edit button?
>
> If they are fields such as "LastChangeDate" and "LastChangedBy" then the
> best place to set these is in the BeforeUpdate event of the form after the
> user clicks the Save button. The point is that if your code changes the
> fields in the current record of the form's recordset, it won't be seen as
> two independent streams editing the same record at the same time.
>
> Oh, your Edit button will still need to set AllowUpdates, but that is all.
> --
> Good Luck :-)
>
> Graham Mandeno [Access MVP]
> Auckland, New Zealand
>
> "cmw" <(E-Mail Removed)> wrote in message
> news:F178A1A4-F57C-4A1E-A906-(E-Mail Removed)...
> > Hi Graham -
> >
> > When the form is opened, the Allow Updates property is false, the edit
> > button sets the property to true, determines which fields can be edited
> > based
> > on the user's credentials and writes data to the table.
> >
> > When the record is saved, the data the user entered on the window is saved
> > (cancelled performs an undo). I know it's the write to the table that
> > causes
> > the problem, programming logic makes the determination what "system" data
> > to
> > update, the user doesn't. The save button saves the user's changes. I'd
> > like
> > to suppress the popup so the user doesn't get what is percieved to be an
> > error message.
> >
> > I'll look into changing the code to DoCmd.RunCommand acCmdSaveRecord. This
> > was my first application in Access - I used examples from books and the
> > help
> > menus to develop it. It's been in use a few years, the newer code is more
> > up
> > to date, but this is the oldest window.
> >
> > Thanks
> > "Graham Mandeno" wrote:
> >
> >> Hi cmw
> >>
> >> I don't quite understand the function of the Edit button. You say:
> >>
> >> > Edit Button - when clicked, the system performs validations and writes
> >> > data
> >> > to the table. The user may add or update additional data.
> >>
> >> I suspect this is what is causing your problem. If this button writes
> >> data
> >> to the same record that is current on your form, then when the Save
> >> button
> >> is clicked, Access will detect that the data in the underlying table has
> >> been changed since it was loaded into the form and that will give you the
> >> "write conflict" message.
> >>
> >> What exactly IS the purpose of having both an Edit and a Save button?
> >>
> >> As an aside, DoMenuItem is obsolete. (A hint which supports this is in
> >> the
> >> "acMenuVer70" - version 7.0 was Access 95!!. Yes, I know the code wizard
> >> still generates code using DoMenuItem, but wizards are notoriously old
> >> with
> >> long grey beards :-)
> >>
> >> Instead, to undo changes to the current record, use:
> >> Me.Undo
> >>
> >> and to save changes to the current record, use either:
> >> Me.Dirty = False
> >> or
> >> DoCmd.RunCommand acCmdSaveRecord
> >> --
> >> Good Luck :-)
> >>
> >> Graham Mandeno [Access MVP]
> >> Auckland, New Zealand
> >>
> >>
> >> "cmw" <(E-Mail Removed)> wrote in message
> >> news:A322A34C-F2D3-494B-B792-(E-Mail Removed)...
> >> > My application uses VB code to perform a variety of validations on data
> >> > entered on a form. There are edit, cancel and save buttons.
> >> >
> >> > User encounters a "Write Conflict" message box on the save button. Can
> >> > this
> >> > message box be suppressed? The set warnings flag does not work on this
> >> > message. I've tried changing the record locking setting on the options
> >> > menu,
> >> > doesn't appear to have any impact.
> >> >
> >> > Edit Button - when clicked, the system performs validations and writes
> >> > data
> >> > to the table. The user may add or update additional data.
> >> > Cancel Button - executes DoCmd.DoMenuItem acFormBar, acEditMenu,
> >> > acUndo, ,
> >> > acMenuVer70 (undoes the user entered data) then overlays data added on
> >> > Edit
> >> > click
> >> > Save Button - executes DoCmd.DoMenuItem acFormBar, acRecordsMenu,
> >> > acSaveRecord, , acMenuVer70 which results in a message box "Write
> >> > Conflict"
> >> > followed by an explanation and 2 choices, "Copy to Clipboard" or "Drop
> >> > Changes".
> >> >
> >> > Thanks
> >> >
> >>
> >>
> >>
>
>