awesome!
it does really help!! THANKS SO MUCH!!
and what if i wanna add a code to ask people to save it or not after they update their form or subform??
I use the following code for the entire form:
_____________________________________________________
Option Compare Database
Option Explicit
_____________________________________________________
Private Sub Lock_Records(blnLock As Boolean)
Me.AllowEdits = blnLock
Dim ctl As Control
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acSubform
ctl.Form.AllowEdits = blnLock
End Select
Next
End Sub
_____________________________________________________
Private Sub Lock_New_Records(blnLock As Boolean)
Me.AllowAdditions = blnLock
Dim ctl As Control
For Each ctl In Me.Controls
Select Case ctl.ControlType
Case acSubform
ctl.Form.AllowAdditions = blnLock
End Select
Next
End Sub
_______________________________________________________
Private Sub cmdUE_Click()
Call Lock_Records(True)
Call Lock_New_Records(True)
End Sub
_____________________________________________________
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strResponse As String
If Me.Dirty Then
Select Case MsgBox( _
Prompt:="Data updated" & _
vbCrLf & "Saved?", _
Buttons:=vbExclamation Or vbYesNo)
Case vbYes
DoCmd.RunCommand acCmdSave
Call Lock_Records(False)
Call Lock_New_Records(False)
Case vbNo
DoCmd.RunCommand acCmdUndo
Call Lock_Records(False)
Call Lock_New_Records(False)
End Select
End If
End Sub
_____________________________________________________
Private Sub Form_Current()
If Me.NewRecord = True Then
Call Lock_Records(True)
Call Lock_New_Records(True)
Else
Call Lock_Records(False)
Call Lock_New_Records(False)
End If
End Sub
_________________________________________________
Private Sub Form_Load()
DoCmd.GoToRecord , , acNewRec
End Sub
_________________________________________________
Private Sub cmdSave_Click()
If Me.Dirty Then
Select Case MsgBox( _
Prompt:="Data updated" & _
vbCrLf & "Saved?", _
Buttons:=vbExclamation Or vbYesNo)
Case vbYes
DoCmd.RunCommand acCmdSave
Call Lock_Records(False)
Call Lock_New_Records(False)
Case vbNo
DoCmd.RunCommand acCmdUndo
Call Lock_Records(False)
Call Lock_New_Records(False)
End Select
End If
End Sub
______________________________________________
But some problems pop up again sadly,
1,it only works on the main form, but ignore the update of subform when ticked the save button
2, when i tick the save button, and i save "Yes", it will pop up the messages box again to ask me save it or not. But No problem when i say No.
3, When i enter data to the entired new record and click save button. There is a message appearing that data cant be saved because of errors.
It is hoped that you could kindly help.
Thanks again!