Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec_07_MA_4_Функции Access.doc
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
220.67 Кб
Скачать

Замечания

Функция DLookup возвращает единственное значение поля на основе сведений, указанных в аргументе условия_отбора. Хотя аргумент условия_отбора необязателен, если опустить этот аргумент, функция DLookup вернет случайное значение из подмножества.

Если ни одна запись не отвечает аргументу условия_отбора или подмножество не содержит записей, функция DLookup возвращает значение Null.

Если аргументу условия_отбора соответствуют несколько полей, функция DLookup возвращает первое найденное значение. Необходимо указать такие условия, при которых значение поля, возвращаемое функцией DLookup, было бы уникальным. Чтобы гарантировать возврат функцией DLookup уникального значения, в качестве условий можно выбрать значение ключевого поля, такого как поле [КодСотрудника], как это показано в следующем примере.

Dim varX As Variant

varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")

Независимо от того, используется ли функция DLookup в макросе, модуле, выражении запроса или вычисляемом элементе управления, для точной оценки необходимо тщательно составить аргумент условия_отбора.

Функция DLookup используется для задания условий в строке запроса «Условия отбора», в выражении вычисляемого поля в запросе или в строке «Обновление» запроса на обновление.

Используйте функцию DLookup в выражении в вычисляемом элементе управления формы или отчета, если поле, для которого требуется отобразить значение, не находится в источнике записей формы или отчета. Предположим, что существует форма «Заказано» (Order Details), построенная на основе таблицы «Заказано» (Order Details), на которой расположено поле «КодТовара» (ProductID), отображающее значение одноименного поля таблицы. Чтобы найти значение поля «Марка» (ProductName) в таблице «Товары» (Products) на основе значения поля формы, создайте другое поле и задайте для свойства ControlSource поля следующее выражение.

=DLookup("[ProductName]", "Products", "[ProductID] =" _

& Forms![Order Details]!ProductID)

Примечания

  • Хотя для отображения значения поля из внешней таблицы можно использовать функцию DLookup, более эффективный способ — создать запрос, содержащий все требуемые поля из обеих таблиц, а на основе этого запроса построить форму или отчет.

  • Для поиска значений во внешней таблице можно также использовать мастер подстановок.

Примечание. При использовании этой функции не учитываются несохраненные изменения записей подмножества. Если функция DLookup должна использовать измененные значения, необходимо сначала сохранить изменения с помощью команды Сохранить запись в меню Записи, с помощью перемещения фокуса на другую запись или метода Update.

Пример

В следующем примере выражение возвращает сведения о названии из поля «Название» (CompanyName) записи, удовлетворяющей аргументу условия_отбора. В качестве подмножества выбрана таблица «Поставщики» (Shippers). Аргумент условия_отбора ограничивает результирующий набор записей только теми, для которых значение поля «КодПоставщика» (ShipperID) равно единице (1).

Dim varX As Variant

varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = 1")

В следующем примере для определения условий для функции DLookup используется элемент управления «КодПоставщика» (ShipperID), расположенный на форме. Необходимо заметить, что связь с элементом управления не заключена в одинарные кавычки, обозначающие строки. Таким образом гарантируется, что Microsoft Access получит текущее значение элемента управления каждый раз при вызове функции DLookup.

Dim varX As Variant

varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = " _

& Forms!Shippers!ShipperID)

В следующем примере для получения значения используется переменная intSearch.

Dim intSearch As Integer

Dim varX As Variant

intSearch = 1

varX = DLookup("[CompanyName]", "Shippers", _

"[ShipperID] = " & intSearch)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]