У меня есть форма, в которой пользователь должен ввести название компании, чтобы избежать дубликатов, которые я написал On_Exit event
для поля ввода данных. Он проверяет все записи и, если находит дубликат, уведомляет пользователя. Проблема в том, что я использую ту же форму для просмотра введенных данных, а затем делаю то же самое On_Exit event
показывает дублирующее предупреждение, несмотря на то, что запись не дублируется. Это происходит потому, что проверка кода для всех записей и поскольку она уже находится в базе данных, она находит себя и вызывает ложную тревогу, это недостаток кода, но я понятия не имею, как этого избежать. Может кто-нибудь предложить умный способ избежать этой проблемы, не создавая две одинаковые формы (кроме одной без проверки дубликатов)?
Мой код для проверки дубликатов:
Private Sub Pareisk_pav_Exit(Cancel As Integer)
Dim Par_pav As String
Dim rst As DAO.Recordset
Dim Counter As Long
Set rst = CurrentDb.OpenRecordset("tblPareiskejai")
Do Until rst.EOF
Par_pav = rst(1)
If rst(1) = Me.Pareisk_pav.Value Then
Me.WarningLB.Caption = "Entry with this name already exist"
Exit Do
Else
Me.WarningLB.Caption = ""
End If
rst.MoveNext
Loop
Exit Sub
Я пытался внедрить Counter в свой код, чтобы игнорировать первое совпадение, но в этом случае он ловит только второй дубликат, а затем вводит новую запись.
Решение счетчика (работает не так, как задумано) Я попытался:
Do Until rst.EOF
Par_pav = rst(1)
If rst(1) = Me.Pareisk_pav.Value Then
Counter = Counter + 1
If Counter = 2 Then
Me.WarningLB.Caption = "Entry with this name already exist"
Exit Do
End If
Else
Me.WarningLB.Caption = ""
End If
rst.MoveNext
Loop