Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

Синтаксис

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

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

Аргумент

Опис

expr

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

домен

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

умови

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

Примітки

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

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

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

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

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

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

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

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

Поради

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

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

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

Приклад

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

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

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

У наступному прикладі значення умови у функції DLookup надає елемент керування форми "Ідентифікатор_перевізник" із таблиці "Перевізники". Зверніть увагу, що посилання на елемент керування не взято в лапки, які позначають рядки. Це гарантує, що щоразу, коли викликається функція DLookup , Access отримуватиме поточне значення з елемента керування.

Dim varX As VariantvarX = DLookup("[CompanyName]", "Shippers", _    "[ShipperID] = " & Forms!Shippers!ShipperID)

У наступному прикладі, щоб отримати значення, використовується змінна intSearch.

Dim intSearch As IntegerDim varX As VariantintSearch = 1varX = DLookup("[CompanyName]", "Shippers", _    "[ShipperID] = " & intSearch)

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

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.