MS VBA | Функция DLookUp

Функция DlookUp позволяет заглянуть в запрос или таблицу MS Access и возвратить значение поля:

 

DLookup("FieldName", "TableOrQueryName", "ID <> 0")

 

или

 

DLookup("FieldName", "TableOrQueryName", "FieldName <> 'text'")

 

Перед тем, как добавлять DLookup  в качестве данных поля формы, работу функции можно увидеть/отладить в окне Immediate:

 

 

Пример:

 

Есть результат запроса (PeriodResearch_Active)

типа "активный период исследования":

 

 

Есть форма по внесению данных об исследовании (фрагмент):

 

 

в которой:

 

ResearchNbr – TextBox, источник данных которого (ControlSource) "смотрит" в запрос PeriodResearch_Active и принимает значение запроса по полю ResearchID:

 

=DLookUp("[ResearchID]";"[ResearchNbr_Actual]";"ResearchID<>0")

 

 

VisitDate – TextBox, поле для заполнения даты визита.

 

Пользователь может внести дату только в рамках "активного периода исследования", поэтому Validation Rule для поля VisitDate:

 

Is Null Or VisitDateIsRight([VisitDate])=False

 

 

где VisitDateIsRight(VisitDate As Date), функция:

 

Function VisitDateIsRight(VisitDate As Date) As Boolean

If VisitDate >= CDate(DLookup("ResearchFrom", "PeriodResearch_Active", "ResearchID <> 0")) _

  And VisitDate <= DLookup("ResearchTill", "PeriodResearch_Active", "ResearchID <> 0") Then

   VisitDateIsRight = False

Else

   VisitDateIsRight = True

End If

End Function

 

 



© 2019 | Анна Петросян | pashelp@yandex.ru