That worked! However... for BehaviourID, if you select a behaviour which has already been entered, it creates an endless loop with the message box continuously appearing... this is my code:
On the Module:
Code:
Public Function ChangeBehaviour(AssessmentID, BehaviourID, ResponseID)
Dim BehID As Long
On Error Resume Next
BehID = DLookup("BehaviourID", "TblAssessmentDetails", "BehaviourID=" & BehaviourID & " AND AssessmentID=" & AssessmentID & " AND ResponseID<>" & ResponseID)
If BehID > 0 Then
MsgBox "This behaviour has already been selected on this assessment."
ChangeBehaviour(AssessmentID, BehaviourID, ResponseID) = True
Else
ChangeBehaviour(AssessmentID, BehaviourID, ResponseID) = False
End If
End Function
On the Form:
Code:
Private Sub BehaviourID_AfterUpdate()
If ChangeBehaviour(Me.AssessmentID, Me.BehaviourID, Me.ResponseID) = True Then
BehaviourID = BehaviourID.OldValue
End If
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If ChangeBehaviour(Me.AssessmentID, Me.BehaviourID, Me.ResponseID) = True Then
BehaviourID = BehaviourID.OldValue
End If
End Sub