Замечания. Примечание. Чтобы вернуть первую или последнюю запись в наборе записей (в подмно­жестве), нужно создать запрос

Замечания

Примечание. Чтобы вернуть первую или последнюю запись в наборе записей (в подмно­жестве), нужно создать запрос, упорядоченный по убыванию или по возрастанию, и присвоить параметру TopValues значение «1». Дополнительные сведения см. в разделе справки для свойства TopValues. В среде Visual Basic можно также создать объект ADO Recordset (Выбрать запись) и использовать для возврата первой или последней записи в наборе записей метод MoveFirst или MoveLast.

Функция DLookup

Функция DLookup используется, чтобы получить значение определенного поля в указанном наборе записей (подмножестве). Функция DLookup используется в Visual Basic, в макросе, модуле, выражении запроса или в вычисляемом элементе управления.

Используйте функцию DLookup, чтобы отобразить значение поля, которое не находится в источнике записей формы или отчета. Предположим, что форма построена на основе таблицы «Заказано». На форме отображены поля «КодЗаказа», «КодТовара», «Цена», «Количество» и «Скидка». Поле «Марка» находится в таблице «Товары». Используйте функцию DLookup в вычисляемом элементе управления, чтобы отобразить поле «Марка» на той же форме.

DLookup(выражение, подмножество, [ условия_отбора ])

Функция DLookup имеет следующие аргументы.

Аргумент Описание
выражение Выражение, которое определяет поле, значение которого нужно возвратить. Это может быть строковое выражение, определяющее поле в таблице или запросе, или выражение, которое производит вычисление на основе сведений в этом поле. Аргумент выражение может содержать имя поля в таблице, элемент управления в форме, константу или функцию. Если аргумент выражение содержит функцию, она может быть встроенной или пользовательской функцией, но не может быть другой функцией по подмножеству или статистической функцией SQL
подмножество Строковое выражение, определяющее набор записей, составляющих подмножество. Имя таблицы или имя запроса, для которых не нужен параметр
условия_отбора Необязательное строковое выражение, используемое для ограничения диапазона данных, с которым работает функция DLookup. Аргумент условия_отбора часто эквивалентен предложению WHERE в инструкции SQL без использования самого слова WHERE. Если аргумент условия_отбора опущен, функция DLookup вычисляет выражение для всего подмножества. Поля, включенные в аргумент условия_отбора, должны также входить в подмножество; в противном случае функция DLookup вернет значение Null

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

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

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

Dim varX As VariantvarX = 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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: