Функція DLookup

У класичних базах даних Access функцію DLookup можна використовувати, щоб отримати значення певного поля з вказаним набором записів (цей набір записів називається домен). Функцію DLookup можна використовувати в модулі Visual Basic for Applications (VBA), макросі, виразі запиту та обчислюваному елементі керування у формі або звіті.

Примітка : Ця стаття не стосується веб-програм Access.

Функцію DLookup можна використовувати, щоб відобразити значення поля, якого немає в джерелі записів форми або звіту. Припустімо, наприклад, що є форма на основі таблиці відомостей про замовлення. У формі відображаються поля "Ідентифікатор_замовлення", "Ідентифікатор_продукту", "Вартість_одиниці_товару", "Кількість" і "Знижка". Однак поле "Назва_продукту" розташовано в іншій таблиці під назвою "Продукти". У такому випадку можна скористатися функцією DLookup в обчислюваному елементі керування, щоб відобразити поле "Назва_продукту" в цій же формі.

Синтаксис

DLookup( вираз, домен [, умови] )

Синтаксис функції DLookup має такі аргументи:

Аргумент

Опис

вираз

Обов’язковий. Вираз, який визначає поле, значення якого потрібно повернути. Це може бути рядковий вираз, який визначає поле в таблиці або запиті, або це може вираз, який виконує обчислення даних у цьому полі. В аргументі вираз можна вказати ім’я поля в таблиці, елемента керування у формі, константи або функції. Якщо аргумент вираз включає функцію, вона може бути вбудованою або користувацькою, але не може бути іншою агрегатною функцією домену або агрегатною функцією SQL.

домен

Обов’язковий. Рядковий вираз, який визначає набір записів, щоб складають домен. Це може бути ім’я таблиці або ім’я запиту, у якого немає обов’язкових параметрів.

умови

Необов’язковий. Рядковий вираз, який дає можливість обмежити діапазон даних, до якого застосовується функція DLookup. Наприклад, умови часто еквівалентні реченню WHERE у виразі SQL без слова WHERE. Якщо аргумент умови вказано, функція DLookup обчислює вираз для всього домену. Будь-яке поле, яке міститься в аргументі умови, також має бути вказано як поле в аргументі домен. В іншому разі функція DLookup повертає Null-значення.

Примітки

Функція DLookup повертає значення одного поля на основі даних, указаних в аргументі умови. Хоча аргумент умови – це необов’язковий аргумент, якщо не вказати значення аргументу умови, функція DLookup поверне довільне значення в домені.

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

Якщо умовам відповідає кілька полів, функція DLookup повертає перший символ. Слід указати умови, які гарантують, що значення поля, повернуте функцією DLookup, унікальне. Для умов можна використовувати значення первинного ключа, наприклад [EmployeeID], як у наведеному нижче прикладі. У такому випадку функція DLookup гарантовано поверне унікальне значення:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

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

За допомогою функції DLookup можна також задати умови в рядку запиту "Критерії", в обчислюваному полі виразу запиту або в рядку "Оновлення до" в запиті на оновлення.

Функцію DLookup можна також використовувати у виразі обчислюваного елемента керування у формі або звіті, якщо потрібного поля немає в джерелі записів, на основі якого створено цю форму або цей звіт. Припустімо, наприклад, що є форма "Відомості про замовлення", створена на основі таблиці "Відомості про замовлення" з текстовим полем під назвою "Ідентифікатор_продукту", у якому відображається значення поля "Ідентифікатор_продукту". Щоб підставити значення "Назва_подукту" з таблиці "Продукти", можна створити ще одне текстове поле та задати для його властивості ControlSource значення, що дорівнює такому виразу:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Поради

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

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

Примітка : Ця функція не враховує незбережені зміни в записах домену. Якщо потрібно, щоб функція DLookup врахувала змінені значення, спочатку потрібно зберегти зміни. Для цього можна натиснути кнопку Зберегти запис у групі Записи на вкладці Дані, перемістити фокус до іншого запису або скористатися методом оновлення.

Приклад

Примітка : У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (VBA). Щоб отримати докладні відомості про використання модуля VBA, клацніть пункт Довідник розробника в розкривному списку поряд із полем Пошук і введіть у поле пошуку принаймні один термін.

У наведеному нижче прикладі показано функцію, що повертає відомості про ім’я з поля "Назва_компанії" запису, який задовольняє умовам. Домен – це таблиця "Перевізники". Аргумент умови обмежує отриманий набір записів, включаючи в нього лише ті, у яких поле "Ідентифікатор_перевізник" дорівнює 1.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")

У наступному прикладі значення умови у функції DLookup надає елемент керування форми "Ідентифікатор_перевізник" із таблиці "Перевізники". Зверніть увагу, що посилання на елемент керування не взято в лапки, які позначають рядки. Це гарантує, що програма 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)
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×