У настільних базах даних Access можна використовувати функцію DLookup , щоб отримати значення певного поля з указаного набору записів ( домен ). Використовуйте функцію DLookup у модулі Visual Basic для ЗАСТОСУНКІВ (VBA), макрос, вираз запиту або обчислюваний елемент керування у формі або звіті.

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

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

Синтаксис

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

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

Аргумент

Опис

expr

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

домен

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

умови

Необов’язковий параметр. Текстовий вираз, який використовується для обмеження діапазону даних, у якому виконується функція DLookup . Наприклад, умови часто рівноцінні речення WHERE у виразі SQL без слова. Якщо аргумент " умови " пропущено, функція 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)

Потрібна додаткова довідка?

Отримуйте нові функції раніше за інших
Приєднатися до Microsoft оцінювачів

Чи були ці відомості корисні?

Наскільки ви задоволені якістю перекладу?
Що вплинуло на ваші враження?

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

×