При разработке формы в Access может потребоваться отобразить значение из таблицы или запроса, отличное от того, к которому привязана форма. Например, предположим, что у вас есть форма Products, привязанная к таблице Products. Однако после разработки формы вы решите, что в форме будет отображаться имя контактного лица поставщика для каждого продукта— данные, которые находятся в таблице с именем Поставщики. В следующей процедуре показано, как использовать функцию DLookup для выполнения этой задачи. Вы можете изменить выражение на шаге 6 в соответствии с собственными данными.
Добавление текстового поля
-
В области навигации щелкните правой кнопкой мыши форму, которую требуется изменить, и выберите в контекстном меню пункт Конструктор.
-
На вкладке Конструктор в группе Элементы управления щелкните Поле.
-
Найдите область в форме, в которую нужно добавить элемент управления, а затем перетащите указатель на форму, чтобы создать текстовое поле.
-
Щелкните правой кнопкой мыши текстовое поле и выберите в контекстном меню пункт Свойства.
-
На странице свойств откройте вкладку Все .
-
Присвойте свойству Control Source следующее значение:
=DLookup("[ContactName]","[Поставщики]","[SupplierID]=" & Forms! Продукты! Идентификатор поставщика)
-
Сохраните изменения формы и закройте страницу свойств.
Это выражение выполняет поиск в таблице Поставщики и возвращает имя контакта поставщика, идентификатор поставщика которого соответствует значению в элементе управления SupplierID в форме Products. Обратите внимание, как оператор & используется для создания третьего аргумента функции DLookup (третий аргумент — "[SupplierID]=" & Forms! Продукты! Идентификатор поставщика). Распространенной ошибкой, которую следует избегать, является размещение в кавычках вокруг всего аргумента, а не вокруг текста, который предшествует оператору & .
Примечание: В качестве альтернативы использованию функции DLookup можно создать новый базовый запрос, который будет включать только необходимые сведения. Использование запроса часто является более эффективным, чем использование функции.