Проверить столбец на значение перед вставкой, если существует, перейти к следующему полю в форме доступа? - PullRequest
0 голосов
/ 16 мая 2019

Я использовал «E» 0000000000a; 0; # в маске ввода и включил этот код, чтобы проверить, существует ли код EmployeeCount в «Перед обновлением». Но когда я пытаюсь ввести дубликат кода сотрудника. Это позволяет. Есть идеи?

Private Sub Empl_Code_BeforeUpdate(Cancel As Integer)
   If IsNull(DLookup("[EmplCode]", _
   "FORM EMPLOYEE", _
   "[EmplCode] = """ & Me.Empl_Code.Text & """")) = False Then
      Cancel = True
      MsgBox "Record already exists", vbOKOnly, "Warning" 
      Me![Empl Code].Undo
   End If
End Sub

1 Ответ

0 голосов
/ 17 мая 2019

Ваш код выглядит законным.Протестируйте ваше выражение IsNull (DLookup ... ) в окне «Немедленное окно» («Вид - Окно« немедленно »в редакторе VBA)), когда вы пытаетесь ввести дублирующий код. Также вы можете немного сократить свое выражение с помощью DCount:

Private Sub Empl_Code_BeforeUpdate(Cancel As Integer)
   If DCount("*", _
   "FORM EMPLOYEE", _
   "[EmplCode] = """ & Me.Empl_Code.Text & """") > 0 Then
      Cancel = True
      MsgBox "Record already exists", vbOKOnly, "Warning" 
      Me![Empl Code].Undo
   else
      ' Just for test
      MsgBox "Value: " & Me.Empl_Code.Text
   End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...