|
||||||||||||||||
Метод Application. DLookup (Access)
Время создания: 04.07.2019 11:02
Текстовые метки: VBA_Access, DLookup
Раздел: Разные закладки - VBA - Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1562227342o8dkzct00y/text.html на raw.githubusercontent.com
|
||||||||||||||||
|
||||||||||||||||
Метод Application. DLookup (Access)
С помощью функции DLookup можно получить значение определенного поля из указанного набора записей (домена). Expression. DLookup (Expr, domain, условия_отбора) выражение: переменная, представляющая объект Application .
Variant Функцию DLookup можно использовать для отображения значения поля, отсутствующего в источнике записей формы или отчета. Например, предположим, что у вас есть форма, основанная на таблице "сведения о заказе". В форме отображаются поля OrderID, ProductID, UnitPrice, Quantityи Скидка . Однако поле " Марка " находится в другой таблице, таблице "продукты". Вы можете использовать функцию DLookup в вычисляемом элементе управления, чтобы отобразить значение ProductName в той же форме. Функция DLookup возвращает одно значение поля на основе информации, заданной в условиях. Несмотря на то, что условие является необязательным аргументом, если вы не указали значение для условия, функция DLookup возвращает случайное значение в домене. Если ни одна из записей не удовлетворяет _условиям_или домен не содержит записей, функция DLookup возвращает значение NULL. Если условию соответствует несколько полей __, функция DLookup возвращает первый экземпляр. Необходимо указать условия, которые гарантируют, что значение поля, возвращаемого функцией DLookup , будет уникальным. Возможно, вы захотите использовать значение первичного ключа для критериев, например, [EmployeeID] в следующем примере, чтобы функция DLookup возвращала уникальное значение: Dim varX As Variant varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1") Независимо от того, используется ли функция DLookup в макросе или модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно сформировать аргумент условия , чтобы убедиться, что он будет оцениваться правильно. Функцию DLookup можно использовать для указания условий в строке условия запроса, в выражении вычисляемого поля в запросе или в строке Обновление в запросе на обновление. Вы также можете использовать функцию DLookup в выражении в вычисляемом элементе управления в форме или отчете, если поле, которое требуется отобразить, не находится в источнике записей, на котором основана форма или отчет. Например, предположим, что у вас есть форма "сведения о заказе" на основе таблицы "сведения о заказе" с текстовым полем ProductID, которое отображает поле ProductID . Чтобы найти ProductName из таблицы Products на основе значения в текстовом поле, можно создать другое текстовое поле и присвоить его свойству ControlSource следующее выражение: =DLookup("[ProductName]", "Products", "[ProductID] =" _ & Forms![Order Details]!ProductID) Совет
В следующем примере возвращаются сведения о имени из поля CompanyName записи, удовлетворяющие условию. Домен — это таблица грузоотправителей. Аргумент условия_отбора разрешает результирующий набор записей для тех, для которых шипперид равняется 1. Dim varX As Variant varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = 1") Следующий пример из таблицы грузоотправители использует элемент управления формы Шипперид для предоставления критериев функции DLookup . Обратите внимание, что ссылка на элемент управления не включается в кавычки, обозначающие строки. Это гарантирует, что при каждом вызове функции DLookup Microsoft Access будет получать текущее значение из элемента управления. 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) В приведенных ниже примерах показано, как использовать различные типы условий с помощью функции DLookup . ' *************************** ' Typical Use ' Numerical values. Replace "number" with the number to use. variable = DLookup("[FieldName]", "TableName", "[Criteria] = number") ' Strings. ' Numerical values. Replace "string" with the string to use. variable = DLookup("[FieldName]", "TableName", "[Criteria]= 'string'") ' Dates. Replace "date" with the string to use. variable = DLookup("[FieldName]", "TableName", "[Criteria]= #date#") ' *************************** ' *************************** ' Referring to a control on a form ' Numerical values variable = DLookup("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName) ' Strings variable = DLookup("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'") ' Dates variable = DLookup("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#") ' *************************** ' *************************** ' Combinations ' Multiple types of criteria variable = DLookup("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _ & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _ & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
' Use two fields from a single record. variable = DLookup("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
' Expressions variable = DLookup("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
' Control Structures variable = DLookup("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7") ' *************************** Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь . |
||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||
|
||||||||||||||||
|