Access

Dlookup синтаксис access: Функция DLookup

Функция DLookup

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

Примечание: Эта статья не относится к веб-приложениям Access.

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

Синтаксис

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

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

Аргумент

Описание

выражение

Обязательный аргумент. Выражение, определяющее поле, значение которого вы хотите возвращать. Это может быть строковое выражение поля в таблице или запросе либо выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля в таблице, элемента управления в форме, константы или функции.

Выражение может включать в себя встроенную или пользовательскую функцию, но не другую агрегатную функцию по подмножеству или агрегатную функцию SQL.

подмножество

Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры.

условия

Необязательный. Строковая выражение, используемая для ограничения диапазона данных, к которым применяется функция

DLookup. Например, условия часто эквивалентны предложению WHERE в SQL, а не слово WHERE. Если этот критерий опущен, функция 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 учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку

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

Пример

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В следующем примере возвращается имя из поля «НазваниеКомпании» записи, которая соответствует условиям. Подмножеством является таблица «Поставщики». Аргумент условия ограничивает результирующий набор теми записями, в которых код грузоотправителя равен 1.

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

В следующем примере, основанном на таблице «Поставщики», элемент управления формы «КодГрузоотправителя» используется для задания условий для функции DLookup. Обратите внимание на то, что ссылка на элемент управления не заключена в кавычки, обозначающие строки. Это гарантирует, что каждый раз при вызове функции DLookup приложение 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)

Метод Application.DLookup (Access) | Microsoft Learn

  • Статья
  • Чтение занимает 5 мин

Используйте функцию DLookup , чтобы получить значение определенного поля из указанного набора записей (домена).

Синтаксис

выражения. DLookup (Expr, Domain, Criteria)

выражение: переменная, представляющая объект Application.

Параметры

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

Возвращаемое значение

Variant

Используйте функцию DLookup , чтобы отобразить значение поля, которое не отображается в источнике записи для формы или отчета. Например, предположим, что у вас есть форма, основанная на таблице Сведения о порядке. В форме отображаются поля OrderID, ProductID, UnitPrice, Quantity и Discount . Однако поле ProductName находится в другой таблице — таблице Products. Вы можете использовать функцию DLookup в расчетном контроле, чтобы отобразить имя продукта в той же форме.

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

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

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

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

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

Используйте функцию DLookup, чтобы указать критерии в строке Критерии запроса, в расчетном выражении поля в запросе или в строке Update To в запросе обновления.

Вы также можете использовать функцию DLookup в выражении в расчетном контроле на форме или отчете, если поле, которое необходимо отобразить, не находится в источнике записи, на котором основана форма или отчет. Например, предположим, что у вас есть форма «Сведения о порядке» на основе таблицы Сведения о порядке с текстовым полем ProductID, отображает поле ProductID . Чтобы найти productName из таблицы Продуктов на основе значения в текстовом окне, можно создать еще одно текстовое поле и задать его свойство ControlSource следующему выражению:

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

Совет

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

Пример

В следующем примере возвращается информация о имени из поля CompanyName критериев соответствия записям. Домен — это таблица грузоотправителей. Аргумент критериев ограничивает в результате набор записей теми, для которых ShipperID равен 1.

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

В следующем примере из таблицы Грузоотправителей используется диспетчер формы ShipperID для предоставления критериев для функции 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")
    ' ***************************
```The following example shows how to use **DLookUp** in a Do Loop. It demonstrates how to build the Criteria string on each pass through the loop.
```vba
' The loop verifies data from an input data set, in this case Operating System names, 
' against those contained in a Master List.
Do Until I1 > NRec1
    ' An apostrophe is concatenated at the beginning and at the end of a datum referenced by "rs1!OS", 
    ' which is then concatenated to build the entire criteria string.
    Str_2 = "'" & rs1!OS & "'"
    Str_1 = "[OS] = " & Str_2
    
    J1 = DLookup("[ID]", "tbl_81_Operating_Systems_Master_List", Str_1)
    
    If IsNull(J1) = True Then
        ' If an OS name is not found, then a flag is set and the name of the unknown OS is output to a table. 
        rs3.AddNew
        rs3.OS = rs1!OS
        rs3.Update
        Err_Fl = False
    End If
    rs1.MoveNext
    I1 = I1 + 1
Loop

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Функция DLookup

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

Примечание. Эта статья не относится к веб-приложениям Access.

Вы можете использовать DLookup для отображения значения поля, которого нет в источнике записи для вашей формы или отчета. Например, предположим, что у вас есть форма, основанная на таблице сведений о заказе. В форме отображаются поля OrderID, ProductID, UnitPrice, Quantity и Discount. Однако поле ProductName находится в другой таблице, таблице Products. Вы можете использовать функцию DLookup в вычисляемом элементе управления для отображения ProductName в той же форме.

Синтаксис

DПоиск( expr, домен [ , критерии ] )

Синтаксис функции DLookup имеет следующие аргументы:

Аргумент

Описание

выражение

Обязательно. Выражение, идентифицирующее поле, значение которого вы хотите вернуть. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или это может быть выражение, выполняющее вычисление данных в этом поле. В expr , вы можете включить имя поля в таблице, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не другой агрегатной функцией предметной области или статистической функцией SQL.

домен

Обязательно. Строковое выражение, идентифицирующее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса для запроса, не требующего параметра.

критериев

Дополнительно. Строковое выражение, используемое для ограничения диапазона данных, для которых Функция DLookup выполнена. Например, критерий часто эквивалентен предложению WHERE в выражении SQL без слова WHERE. Если критерий опущен, функция DLookup оценивает expr по всему домену. Любое поле, включенное в критерий , также должно быть полем в домене ; в противном случае функция DLookup возвращает значение Null.

Примечания

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

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

Если несколько полей соответствуют критериям , функция DLookup возвращает первое вхождение. Вы должны указать критерии, которые обеспечат уникальность значения поля, возвращаемого функцией DLookup . Вы можете использовать значение первичного ключа для ваших критериев, например [EmployeeID] в следующем примере, чтобы убедиться, что Функция DLookup возвращает уникальное значение:

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

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

Вы можете использовать Функция DLookup для указания критериев в строке Criteria запроса, в выражении вычисляемого поля в запросе или в строке Update To в запросе на обновление.

Вы также можете использовать функцию DLookup в выражении в вычисляемом элементе управления в форме или отчете, если поле, которое вам нужно отобразить, не находится в источнике записей, на котором основана ваша форма или отчет. Например, предположим, что у вас есть форма «Сведения о заказе», основанная на таблице «Сведения о заказе» с текстовым полем ProductID, в котором отображается поле ProductID. Чтобы найти ProductName в таблице Products на основе значения в текстовом поле, вы можете создать другое текстовое поле и установить его свойство ControlSource к следующему выражению:

=DLookup(«[ProductName]», «Products», «[ProductID] =» & Forms![Информация о заказе]!ProductID)

Советы

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

  • Вы также можете использовать мастер поиска для поиска значений во внешней таблице.

Примечание. Несохраненные изменения в записях в домене не учитываются при использовании этой функции. Если вы хотите, чтобы функция DLookup основывалась на измененных значениях, вы должны сначала сохранить изменения, щелкнув Сохранить запись под Записи на Вкладка Data , переместив фокус на другую запись или используя метод Update .

Пример

Примечание. В следующих примерах показано использование этой функции в модуле Visual Basic для приложений (VBA). Для получения дополнительных сведений о работе с VBA выберите Справочник разработчика в раскрывающемся списке рядом с Поиск и введите одно или несколько условий в поле поиска.

В следующем примере возвращается информация об имени из поля CompanyName записи, удовлетворяющей критериям . Домен представляет собой таблицу Shippers. Аргумент критериев ограничивает результирующий набор записей теми, для которых ShipperID равен 1.

 Dim varX As Variant 
varX = DLookup("[CompanyName]", _
"Отправители", "[ShipperID] = 1")

В следующем примере из таблицы Shippers элемент управления формой ShipperID используется для предоставления критериев для Функция DLookup . Обратите внимание, что ссылка на элемент управления не заключена в кавычки, обозначающие строки. Это гарантирует, что при каждом вызове функции DLookup 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)

Метод Application.DLookup (Доступ) | Microsoft Learn

  • Статья
  • 6 минут на чтение

Используйте функцию DLookup , чтобы получить значение определенного поля из указанного набора записей (домена).

Синтаксис

выражение . DLookup ( Expr , Домен , Критерии )

выражение Переменная, которая представляет объект Application .

Параметры

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

Возвращаемое значение

Вариант

Используйте функцию DLookup для отображения значения поля, которого нет в источнике записи для вашей формы или отчета. Например, предположим, что у вас есть форма, основанная на таблице сведений о заказе. Форма отображает OrderID , ProductID , UnitPrice , Quantity и Скидка полей. Однако поле ProductName находится в другой таблице, таблице Products. Вы можете использовать функцию DLookup в вычисляемом элементе управления для отображения ProductName в той же форме.

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

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

Если несколько полей соответствуют критериям , функция DLookup возвращает первое вхождение. Вы должны указать критерии, которые обеспечат уникальность значения поля, возвращаемого функцией DLookup . Вы можете использовать значение первичного ключа для своих критериев, например [EmployeeID] в следующем примере, чтобы функция DLookup возвращала уникальное значение:

 Dim varX As Variant
varX = DLookup("[Фамилия]", "Сотрудники", "[ID сотрудника] = 1")
 

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

Использовать DLookup для указания критериев в строке Criteria запроса, в выражении вычисляемого поля в запросе или в строке Update To в запросе на обновление.

Вы также можете использовать функцию DLookup в выражении в вычисляемом элементе управления в форме или отчете, если поле, которое вам нужно отобразить, отсутствует в источнике записей, на котором основана ваша форма или отчет. Например, предположим, что у вас есть форма «Сведения о заказе», основанная на таблице «Сведения о заказе» с текстовым полем ProductID, в котором отображается Поле ProductID . Чтобы найти ProductName в таблице Products на основе значения в текстовом поле, вы можете создать другое текстовое поле и установить для его свойства ControlSource следующее выражение:

 =DLookup("[ProductName]", "Products ", "[ID продукта] =" _
     и формы![Сведения о заказе]!ProductID)
 

Совет

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

Пример

В следующем примере возвращается информация об имени из поля CompanyName записи, удовлетворяющей критериям . Домен представляет собой таблицу Shippers. Аргумент критериев ограничивает результирующий набор записей теми, для которых ShipperID равен 1.

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

В следующем примере из таблицы Shippers элемент управления формой ShipperID используется для предоставления критериев для функции DLookup . Обратите внимание, что ссылка на элемент управления не заключена в кавычки, обозначающие строки. Это гарантирует, что при каждом вызове функции DLookup Microsoft Access будет получать текущее значение из элемента управления.

 Dim varX как вариант
varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = " _
    & Формы!Отправители!ShipperID)
 

В следующем примере используется переменная intSearch для получения значения.

 Dim intSearch As Integer
Dim varX как вариант
 
поиск = 1
varX = DLookup("[CompanyName]", "Отправители", _
    "[ShipperID] = " & intSearch)
 

В следующих примерах показано, как использовать различные типы критериев с функцией DLookup .

 ' ******************************
 ' Типичное использование
 'Числовые значения. Замените «число» на число, которое нужно использовать.
 переменная = DLookup("[FieldName]", "TableName", "[Criteria] = число")
 ' Струны.
 'Числовые значения. Замените «строка» строкой для использования.
 переменная = DLookup("[FieldName]", "TableName", "[Criteria]= 'string'")
 ' Даты. Замените «дата» строкой для использования.
 переменная = DLookup("[FieldName]", "TableName", "[Criteria]= #date#")
 '******************************
 '******************************
 ' Обращение к элементу управления на форме
 ' Числовые значения
 переменная = DLookup("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)
 ' Строки
 переменная = DLookup("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")
 ' Даты
 переменная = DLookup("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
 '******************************
 '******************************
 ' Комбинации
 ' Несколько типов критериев
 переменная = DLookup("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
 & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
 & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#") 
 ' Использовать два поля из одной записи. переменная = DLookup("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7") 
 ' Выражения
 переменная = DLookup("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7") 
 ' Структуры управления
 переменная = DLookup("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
 '******************************
```В следующем примере показано, как использовать **DLookUp** в цикле выполнения. Он демонстрирует, как построить строку Criteria при каждом проходе цикла.
```vba
' Цикл проверяет данные из набора входных данных, в данном случае имена операционных систем,
' против тех, которые содержатся в Основном списке.
Делать до I1 > NRec1
 ' Апостроф конкатенируется в начале и в конце данных, на которые ссылается "rs1!OS",
 ', который затем объединяется для построения всей строки критериев.
 Str_2 = "'" & rs1! ОС & "'"
 Str_1 = "[ОС] = " & Str_2 
 J1 = DLookup("[ID]", "tbl_81_Operating_Systems_Master_List", Str_1) 
 Если IsNull(J1) = Истина Тогда
 ' Если имя ОС не найдено, то устанавливается флаг и в таблицу выводится имя неизвестной ОС.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *