У меня есть условие обновлять запись если совпадают studentid и subjectid и вносить новую запись если нету подходящей записи. Иногда создается новая запись, ошибку выявить не смог.
Private Sub effort1_AfterUpdate()
Dim updateSQL, insertSQL As String
If DLookup("[studentid]", "dbo_marks", "[dbo_marks].[studentid] = " & Me.student_list.Column(0, 0)) And DLookup("[subjectid]", "dbo_marks", "[dbo_marks].[subjectid] = " & Me.subject) Then
updateSQL = "Update dbo_marks SET effort = '" & Me.effort1 & "' WHERE studentid = " & Me.student_list.Column(0, 0) & " And subjectid = " & Me.subject & "; "
CurrentProject.Connection.Execute (updateSQL)
Else
insertSQL = " Insert Into dbo_marks(studentid, subjectid, effort) values (" & Me.student_list.Column(0, 0) & ", " & Me.subject & ", '" & Me.effort1 & "');"
CurrentProject.Connection.Execute (insertSQL)
End If