From: PeterM on 4 Jun 2010 23:03 I have a AC2003 bound form. The condition I'm trying to capture is if the user modifies any item on the form and they close the form without saving changes. Simple...right? I found out that Form_Close doesn't work so I tried the following code in the Form_Unload event and that isn't working either. It does not even trigger the event. Can someone please tell me what I'm doing wrong? I would be much appreciated. Private Sub Form_Unload(Cancel As Integer) If Me.btnSave.Enabled Then Dim strMsg As String strMsg = strMsg & "Save Changes?" & Chr(13) & Chr(13) If MsgBox(strMsg, vbQuestion + vbYesNo, "Please Confirm!") = vbYes Then DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Else Cancel = True End If End If End Sub
From: Jeanette Cunningham on 4 Jun 2010 23:45 You can code the save button like this: Private Sub btnSave_Click() Dim strMsg As String strMsg = strMsg & "Save Changes?" & Chr(13) & Chr(13) If Me.Dirty = True Then If MsgBox(strMsg, vbQuestion + vbYesNo, "Please Confirm!") = vbYes Then Me.Dirty = False Else Me.Undo End If End If End Sub You will need some error handling to trap errors if something stops the save, for example a required field missing. Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia "PeterM" <PeterM(a)discussions.microsoft.com> wrote in message news:E5B3554A-93AE-4BA9-8D54-0E080E8815F4(a)microsoft.com... >I have a AC2003 bound form. The condition I'm trying to capture is if the > user modifies any item on the form and they close the form without saving > changes. Simple...right? I found out that Form_Close doesn't work so I > tried the following code in the Form_Unload event and that isn't working > either. It does not even trigger the event. Can someone please tell me > what > I'm doing wrong? I would be much appreciated. > > Private Sub Form_Unload(Cancel As Integer) > If Me.btnSave.Enabled Then > Dim strMsg As String > strMsg = strMsg & "Save Changes?" & Chr(13) & Chr(13) > If MsgBox(strMsg, vbQuestion + vbYesNo, "Please Confirm!") = vbYes > Then > DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , > acMenuVer70 > Else > Cancel = True > End If > End If > End Sub >
From: PeterM on 5 Jun 2010 01:00 I don't think I've explained the problem clearly. I have the save button setup the way you define in your example. How do I capture if the user changes a bound item on a form and tries to close the form without clicking on the save button first. There is no close button on the form, a form is closed by a parent form when another form is opened. I need to determine when the form is closed but still is dirty. THe unload and close events don't work in that situation. "Jeanette Cunningham" wrote: > You can code the save button like this: > > Private Sub btnSave_Click() > Dim strMsg As String > strMsg = strMsg & "Save Changes?" & Chr(13) & Chr(13) > > If Me.Dirty = True Then > If MsgBox(strMsg, vbQuestion + vbYesNo, "Please Confirm!") = vbYes Then > Me.Dirty = False > Else > Me.Undo > End If > End If > End Sub > > You will need some error handling to trap errors if something stops the > save, for example a required field missing. > > > Jeanette Cunningham MS Access MVP -- Melbourne Victoria Australia > > "PeterM" <PeterM(a)discussions.microsoft.com> wrote in message > news:E5B3554A-93AE-4BA9-8D54-0E080E8815F4(a)microsoft.com... > >I have a AC2003 bound form. The condition I'm trying to capture is if the > > user modifies any item on the form and they close the form without saving > > changes. Simple...right? I found out that Form_Close doesn't work so I > > tried the following code in the Form_Unload event and that isn't working > > either. It does not even trigger the event. Can someone please tell me > > what > > I'm doing wrong? I would be much appreciated. > > > > Private Sub Form_Unload(Cancel As Integer) > > If Me.btnSave.Enabled Then > > Dim strMsg As String > > strMsg = strMsg & "Save Changes?" & Chr(13) & Chr(13) > > If MsgBox(strMsg, vbQuestion + vbYesNo, "Please Confirm!") = vbYes > > Then > > DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , > > acMenuVer70 > > Else > > Cancel = True > > End If > > End If > > End Sub > > > > > . >
From: John W. Vinson on 5 Jun 2010 01:41 On Fri, 4 Jun 2010 22:00:58 -0700, PeterM <PeterM(a)discussions.microsoft.com> wrote: >I don't think I've explained the problem clearly. I have the save button >setup the way you define in your example. How do I capture if the user >changes a bound item on a form and tries to close the form without clicking >on the save button first. There is no close button on the form, a form is >closed by a parent form when another form is opened. I need to determine >when the form is closed but still is dirty. THe unload and close events >don't work in that situation. Use the form's BeforeUpdate event. It will fire if any field value is changed and any action is taken that would save it (such as closing the form, pressing Shift-Enter, etc.) You can set the value of a public variable in the legitimate "close" button and check that variable's value in the BeforeUpdate event; if you don't want to save the record, issue a message and set the event's Cancel parameter to True. -- John W. Vinson [MVP]
From: PeterM on 5 Jun 2010 23:18 Thanks John! "John W. Vinson" wrote: > On Fri, 4 Jun 2010 22:00:58 -0700, PeterM <PeterM(a)discussions.microsoft.com> > wrote: > > >I don't think I've explained the problem clearly. I have the save button > >setup the way you define in your example. How do I capture if the user > >changes a bound item on a form and tries to close the form without clicking > >on the save button first. There is no close button on the form, a form is > >closed by a parent form when another form is opened. I need to determine > >when the form is closed but still is dirty. THe unload and close events > >don't work in that situation. > > Use the form's BeforeUpdate event. It will fire if any field value is changed > and any action is taken that would save it (such as closing the form, pressing > Shift-Enter, etc.) You can set the value of a public variable in the > legitimate "close" button and check that variable's value in the BeforeUpdate > event; if you don't want to save the record, issue a message and set the > event's Cancel parameter to True. > -- > > John W. Vinson [MVP] > . >
|
Pages: 1 Prev: Adding Microsoft ActiveX Data Objects 6.0 Library Next: abbonnement happinez |