Указание числового критерия:
Чтобы найти фамилию сотрудника с кодом 7, укажите критерий, ограничивающий диапазон значений:
=DLookup("[LastName]", "Employees", "[EmployeeID] = 7")
Указание числового критерия из поля формы:
Если вы не хотите указать конкретное значение в выражении (как в предыдущем примере), используйте параметр в критерии.
=DLookup("[LastName]", "Employees", _
"[EmployeeID] = Form![EmployeeID]")
=DLookup("[LastName]", "Employees", _
"[EmployeeID] = " & [EmployeeID])
=DLookup("[LastName]", "Employees", _
"[EmployeeID] = " & Forms![Orders]![EmployeeID])
Эти три примера возвращают одинаковые результаты.
В первом примере формы!
"[EmployeeID] = [EmployeeID]"
вычисляется как:
"1 = 1"
и поэтому будет первой записью, соответствующей критерию.
Критерий в двух примерах выполняются путем сцепления двух строковых выражений с
амперсанда (&).
При вычислении критерия первой и присоединенных или сцепленные вычисляются отдельные
части критерия, а затем вычисляется все выражение.
Если текущее значение поля EmployeeID формы Orders равно 7, исходное выражение
критерия
"[EmployeeID] = " & [EmployeeID]
будет вычисляться как
"[EmployeeID] = " & 7
что после объединения дает для:
"[EmployeeID] = 7"
Если не указать ссылку полной формы (как во втором примере), Microsoft Access
предполагает, что вы ссылаетесь на текущую форму.
Следующий пример является производным от третьего примера:
=DLookup("[LastName]", "Employees", _
"[EmployeeID] = Forms![Orders]![EmployeeID]")
В этом примере ссылки на формы полностью заключен внутри кавычек критерия.
Если поле Чтобы автоматически обновлять при изменении критерия, сделайте критерий
переменной с помощью способ объединения частей выражения, как описано ранее.
Обратите внимание, что при переходе к новой записи DLookup() текстовые поля, которые
обновляются автоматически будет иметь # Ошибка в них, то, что вводится в поле
EmployeeID поле.
Указание текстового критерия:
Приведенные выше примеры демонстрируют использование функции DLookup() с числовым
критерием.
=DLookup("[Title]", "Employees", "[LastName] = 'Callahan'")
Обратите внимание, что можно использовать двойные кавычки, а не одинарные
кавычки, хотя одинарных кавычек является более предпочтительным.
=DLookup("[Title]", "Employees", "[LastName] = ""Callahan""")
Указание текстового критерия из поля формы:
Следующем примере показано, как найти название контракта для клиента в форме
Orders. Поле CustomerID является текстовым полем критерия, поэтому DLookup()
инструкции:
=DLookup("[ContactName]", "[Customers]", _
"[CustomerID]='" & [CustomerID] & "'")
–ИЛИ-
=DLookup("[ContactName]", "[Customers]", _
"[CustomerID]='" & Forms![Orders]![CustomerID] & "'")
Во втором примере критерий создается путем объединения трех строковых выражений.
Во-первых, "[CustomerID] = '", вторым – значение, содержащееся в поле CustomerID,
а третий — закрывающей одиночной кавычки заключены в двойные кавычки.
При вычислении этого критерия сначала вычисляются отдельные части и их результаты
складываются или объединяются. Затем вычисляется все выражение.
Если текущее значение выбранного в поле со списком CustomerID в форме Заказы
Alfreds Futterkiste, присоединенный столбец для поля со списком возвращает ALFKI как
CustomerID. Исходное выражение критерия
"[CustomerID] = '" & [CustomerID] & "'"
вычисляется как
"[CustomerID] = '" & "ALFKI" & "'"
что после объединения дает
"[CustomerID] = 'ALFKI'"
Указание даты:
Если поля критерия содержат значения даты или времени, заключите значение даты
или времени в знаки номера (#). Чтобы найти сотрудника, день рождения которого
приходится на определенную дату, воспользуйтесь следующим примером:
=DLookup("[LastName]", "Employees", "[BirthDate] = #12-08-68#")
Указание нескольких полей в критерии:
Выражение условия может быть любой допустимый предложение SQL WHERE (без
ключевого слова ГДЕ). Это означает, что можно использовать более одного поля для
указания критерия для функции DLookup() .
Чтобы найти код заказа один из заказов, проданных сотрудником «Андрей Фокин» с
EmployeeID 2 (числовой) для клиента «Simons bistro» с CustomerID из SIMOB (текст),
используйте следующую инструкцию DLookup() образца:
=DLookup("[OrderID]", "Orders", _
"[CustomerID] = 'SIMOB' And [EmployeeID] = 2")
Этот оператор возвращает значение OrderID 10556, который является значением первого поля OrderID, соответствующего заданному критерию. OrderID 10669 также соответствует критериям.
Приведенный выше пример использует жестко запрограммированные или специальные значения CustomerID и EmployeeID. Чтобы использовать переменные вместо специфических значений критерия, можно использовать для объединения нескольких строковых выражений Visual Basic для приложений. Этот метод демонстрируется в следующем примере Visual Basic:
Sub subTest
'Declare the variables.
Dim CustID As String
Dim EmpID As Long
Dim Result
'Assign values to the variables to be used in the criteria.
CustID = "SIMOB"
EmpID = 2
Result = DLookup("[OrderID]", "Orders", _
"[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID)
MsgBox Result
End Sub
Если функция DLookup() завершается неудачно, результат переменная содержит значение Null.
Обратите внимание, что критерий состоит из четырех частей, которые оцениваются по отдельности. Результаты добавляются и оцениваются в целом. Исходное выражение критерия:
"[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID
вычисляется как
"[CustomerID] = '" & "SIMOB" & "' And [EmployeeID] = " & 2
что после объединения дает
"[CustomerID] = 'SIMOB' And [EmployeeID] = 2"
Следующий пример можно использовать для нахождения сотрудника, день рождения которого
совпадает с текущей датой:
=DLookup("[LastName]", "Employees", _
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
= " & Day(Date))
Если текущая дата — 2/12/2001, исходное выражение критерия
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) = " _
& Day(Date)
вычисляется как
"Month([BirthDate]) = " & 12 & " And Day([BirthDate]) = " & 2
что после объединения дает
"Month([BirthDate]) = 12 And Day([BirthDate]) = 2"