#vba #dlookup
#vba #dlookup
Вопрос:
Я боролся с тем, как закодировать DLookup в форме. У меня есть два поля со списком (один сотрудник, одно название учебного класса), и мне нужно, чтобы появлялось окно сообщения, если сотрудник уже посещал класс. Я беру запись из таблицы Employee и одну запись из таблицы учебного класса, и если комбинация этих двух существует, мне нужно закодировать messagebox, что они уже приняли класс. Обратите внимание, что я не программист на VBA; Я взялся за существующий проект базы данных Access, поэтому я учусь по ходу с YouTube и замечательных досок сообщества, подобных этому.
Вот что я пробовал, но это не работает:
Private Sub Date_Taken_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("[Training Classes Taken tbl].[Officer]", "[Training Classes Taken tbl]", "[Training Classes Taken tbl].[Officer] = '" amp; Me.Officer amp; "'") amp; "'AND Me.[Training Class Name]= '" amp; Me.[Training Class]) Then
MsgBox "Class already taken."
Cancel = True
End If
Exit Sub
Ответ №1:
DLookup ищет («поле, которое вы хотите», «таблица, из которой оно получено» и «поле поиска и значение, которое оно должно быть») . Итак, я бы, вероятно, использовал в событии нажатия кнопки и попробовал (при условии, что office:
Dim varx as variant
varx = Dlookup("Officer", "[Training Classes Taken]", "[Training Class Name]='" amp; me.[Training Class] amp; "'")
if not IsNull(varx) then
msgbox("you have already taken this course")
end if