Использование функции dLookup
Функция DLookup выполняет поиск информации в еще не открытых таблицах. Синтаксис:
DLookup(«[Поля, которые нужно отобразить]»,»[Таблица представления]»,»<Критерий поиска>»),
где Таблица представления — таблица, в которой находятся искомые поля.
Критерий поиска имеет следующий формат :
«[Поле в таблице]» = ‘<Пример данных>’ .
‘<Пример данных>’ обычно представляется в виде символьной константы. Если же данные являются полем в таблице, то необходимо использовать синтаксис «&[Поле в рассматриваемой таблице]&»
При вводе названий полей и критериев для функция DLookup() запрещено использовать пробелы. Эту функцию можно использовать в процедурах VBA и в запросах для отбора данных. Если поле таблицы является текстовым, то его нужно заключать в одинарные кавычки.
Внутренние константы
Помимо констант, которые поставляются вместе с Access, можно использовать любые константы из библиотек DAO и VBA. Внутренние константы всегда доступны. Имена внутренних констант имеют приставку из двух букв, указывающую на их принадлежность к библиотеке. Константы Access начинаются с букв ac, константы DAO — с букв db, а константы VBA — с букв vb. Например, константа dbOpenTable открывает таблицу.
Внутренние константы используются в качестве аргументов в операторах вида DoCmd.Команда.
Технология работы Создание процедуры для проверки правильности вводимой даты
Откройте форму Заказы в режиме конструктора.
Откройте свойства поля ДатаИсполнения.
Щелкните по кнопке справа от свойства До обновления и выберите Процедуру обработки событий.
Введите следующую процедуру, которая выводит сообщение о неверной дате,
Private Sub ДатаИсполнения_BeforeUpdate(Cancel As Integer)
If [ДатаИсполнения] < [ДатаРазмещения] Then
MsgBox «Дата исполнения не может быть раньше даты размещения»
Me![ДатаИсполнения]. Undo
Cancel = True
End If
End Sub
С помощью метода Undo элемента управления происходит отмена изменения в поле и аргумент Cancel устанавливается равным True для отмены изменений в буфере записи.
Проверьте работу процедуры, перейдя в режим формы. Введите неверную дату и нажмите Enter.
Создать функцию для автоматического установления скидки.
Введите следующий фрагмент текста программы:
Function Disc (intQuantity As Integer) As Single
Select Case intQuantity
Case Is >= 1000
Disc = 0. 5
Case Is >= 500
Disc = 0.4
Case Is >= 100
Disc = 0.3
Case Is >= 50
Disc = 0.2
Case Is >= 10
Disc = 0.1Case Else
Disc = 0
End Select
End Function
Выберите опцию меню Debug->Compile,
чтобы убедиться, что функция не содержит синтаксических ошибок.
Выберите опцию меню View->Immediate Window (Окно отладки).
5. В окне отладки введите ? Disc(), поставив в скобки конкретное количество.
Нажмите Enter и проверьте результат.
Сохраните модуль, помня, что его имя не должно совпадать с именем функции.
Откройте форму ЗаказанныйТовар в режиме конструктора.
Убедитесь, что в свойстве Имя поля Количество задано Количество.
В свойстве Данные поля Скидка напишите =Disc(NZ([Количество])).
Проверьте работу функции, перейдя в режим формы.
Это интересно: DlookUP Access
Указание числового критерия:
Чтобы найти фамилию сотрудника с кодом 7, укажите критерий, ограничивающий диапазон значений:
=DLookup(«[LastName]», «Employees», «[EmployeeID] = 7»)
Указание числового критерия из поля формы:
Если вы не хотите указать конкретное значение в выражении (как в предыдущем примере), используйте параметр в критерии.
=DLookup(«[LastName]», «Employees», _
=DLookup(«[LastName]», «Employees», _
«[EmployeeID] = » & [EmployeeID])
=DLookup(«[LastName]», «Employees», _
«[EmployeeID] = » & Forms![Orders]![EmployeeID])
Эти три примера возвращают одинаковые результаты.
В первом примере формы!
«[EmployeeID] = [EmployeeID]»
вычисляется как:
«1 = 1»
и поэтому будет первой записью, соответствующей критерию.
Критерий в двух примерах выполняются путем сцепления двух строковых выражений с
амперсанда (&).
При вычислении критерия первой и присоединенных или сцепленные вычисляются отдельные
части критерия, а затем вычисляется все выражение.
Если текущее значение поля EmployeeID формы Orders равно 7, исходное выражение
критерия
«[EmployeeID] = » & [EmployeeID]
будет вычисляться как
«[EmployeeID] = » & 7
что после объединения дает для:
«[EmployeeID] = 7»
предполагает, что вы ссылаетесь на текущую форму.
Следующий пример является производным от третьего примера:
=DLookup(«[LastName]», «Employees», _
«[EmployeeID] = Forms![Orders]![EmployeeID]»)
В этом примере ссылки на формы полностью заключен внутри кавычек критерия.
Если поле Чтобы автоматически обновлять при изменении критерия, сделайте критерий
переменной с помощью способ объединения частей выражения, как описано ранее.
Обратите внимание, что при переходе к новой записи DLookup() текстовые поля, которые
обновляются автоматически будет иметь # Ошибка в них, то, что вводится в поле
EmployeeID поле.
Приведенные выше примеры демонстрируют использование функции DLookup() с числовым
=DLookup(«[Title]», «Employees», «[LastName] = ‘Callahan'»)
Обратите внимание, что можно использовать двойные кавычки, а не одинарные
кавычки, хотя одинарных кавычек является более предпочтительным.
=DLookup(«[Title]», «Employees», «[LastName] = «»Callahan»»»)
Указание текстового критерия из поля формы:
Следующем примере показано, как найти название контракта для клиента в форме
Orders. Поле CustomerID является текстовым полем критерия, поэтому DLookup()
инструкции:
=DLookup(«[ContactName]», «[Customers]», _
«[CustomerID]='» & [CustomerID] & «‘»)
–ИЛИ-
=DLookup(«[ContactName]», «[Customers]», _
«[CustomerID]='» & Forms![Orders]![CustomerID] & «‘»)
Во втором примере критерий создается путем объединения трех строковых выражений.
а третий — закрывающей одиночной кавычки заключены в двойные кавычки.
При вычислении этого критерия сначала вычисляются отдельные части и их результаты
складываются или объединяются. Затем вычисляется все выражение.
Если текущее значение выбранного в поле со списком CustomerID в форме Заказы
Alfreds Futterkiste, присоединенный столбец для поля со списком возвращает ALFKI как
CustomerID. Исходное выражение критерия
«[CustomerID] = ‘» & [CustomerID] & «‘»
вычисляется как
«[CustomerID] = ‘» & «ALFKI» & «‘»
что после объединения дает
«[CustomerID] = ‘ALFKI'»
Указание даты:
Если поля критерия содержат значения даты или времени, заключите значение даты
приходится на определенную дату, воспользуйтесь следующим примером:
=DLookup(«[LastName]», «Employees», «[BirthDate] = #12-08-68#»)
Указание нескольких полей в критерии:
Выражение условия может быть любой допустимый предложение SQL WHERE (без
ключевого слова ГДЕ). Это означает, что можно использовать более одного поля для
указания критерия для функции DLookup() .
Чтобы найти код заказа один из заказов, проданных сотрудником «Андрей Фокин» с
EmployeeID 2 (числовой) для клиента «Simons bistro» с CustomerID из SIMOB (текст),
используйте следующую инструкцию DLookup() образца:
=DLookup(«[OrderID]», «Orders», _
«[CustomerID] = ‘SIMOB’ And [EmployeeID] = 2»)
Этот оператор возвращает значение OrderID 10556, который является значением первого поля OrderID, соответствующего заданному критерию.
Приведенный выше пример использует жестко запрограммированные или специальные значения CustomerID и EmployeeID. Чтобы использовать переменные вместо специфических значений критерия, можно использовать для объединения нескольких строковых выражений Visual Basic для приложений. Этот метод демонстрируется в следующем примере Visual Basic:
Sub subTest
‘Declare the variables.
Dim CustID As String
Dim EmpID As Long
Dim Result
‘Assign values to the variables to be used in the criteria.
CustID = «SIMOB»
EmpID = 2
Result = DLookup(«[OrderID]», «Orders», _
«[CustomerID] = ‘» & CustID & «‘ And [EmployeeID] = » & EmpID)
MsgBox Result
End Sub
Если функция DLookup() завершается неудачно, результат переменная содержит значение Null.
Обратите внимание, что критерий состоит из четырех частей, которые оцениваются по отдельности. Результаты добавляются и оцениваются в целом. Исходное выражение критерия:
«[CustomerID] = ‘» & CustID & «‘ And [EmployeeID] = » & EmpID
вычисляется как
«[CustomerID] = ‘» & «SIMOB» & «‘ And [EmployeeID] = » & 2
что после объединения дает
«[CustomerID] = ‘SIMOB’ And [EmployeeID] = 2»
Следующий пример можно использовать для нахождения сотрудника, день рождения которого
совпадает с текущей датой:
=DLookup(«[LastName]», «Employees», _
«Month([BirthDate]) = » & Month(Date) & » And Day([BirthDate]) _
= » & Day(Date))
Если текущая дата — 2/12/2001, исходное выражение критерия
«Month([BirthDate]) = » & Month(Date) & » And Day([BirthDate]) = » _
& Day(Date)
вычисляется как
«Month([BirthDate]) = » & 12 & » And Day([BirthDate]) = » & 2
что после объединения дает
«Month([BirthDate]) = 12 And Day([BirthDate]) = 2»
7 способов использования функции MS Access DLookup(), которую нельзя пропустить.
..!Вы когда-нибудь слышали о функции DLookup базы данных Access? Хотите узнать больше об этой функции DLookup базы данных Access? Тогда в этом случае вы находитесь на правильной платформе.
Это руководство написано с основной целью предоставить вам полную информацию о функции MS Access Dlookup и в основном фокусируется на том, как использовать dlookup в Access .
Исправить проблемы с Microsoft Access
Запустить сканирование базы данных с помощью Stellar Access Database Repair Tool для восстановления несогласованной базы данных Access. После завершения сканирования процесс восстановления восстановит базу данных до ее нормального состояния, исправив все ошибки.
Нажимая кнопку выше и устанавливая Stellar Repair for Access (14,8 МБ), я подтверждаю, что прочитал и согласен с Лицензионным соглашением с конечным пользователем и Политикой конфиденциальности этого сайта.
Исправление ошибок доступа
Что это за функция Access Dlookup?Приложение Microsoft Access имеет мощный пакет обработки данных с множеством мощных функций, упрощающих извлечение данных. Из этой обширной коллекции MS Access DLookup функция является наиболее работоспособной.
В приложении MS Access функция DLookup используется для получения значения определенного поля из указанного набора записей (домена). Вы можете использовать эту функцию DLookup в Модуль Visual Basic для приложений (VBA) , выражение запроса, макрос или вычисляемый элемент управления в форме или отчете.
Эта функция лучше всего подходит для извлечения значения определенного поля из домена. Здесь домен может быть заданным набором записей из таблицы, запроса или выражения SQL. Эту функцию DLookup можно использовать для отображения значений полей, которых нет в базовом наборе записей.
Например:
Предположим, у вас есть форма на Детали заказа табл. Форма будет отображать поля Quantity, OrderID, ProductID, UnitPrice и Discount . Однако в таблице продуктов присутствует «поле ProductName» . В этом случае вы можете использовать функцию DLookup в вычисляемом элементе управления для отображения ProductName в той же форме.
Примеры функции MS Access DLookupDim newvar как вариант
Newvar = DLookup(«[имя студента]»,»studentmaster»,»[rollno]=1001″)
Из вышеприведенного примера извлекаются данные из поля [имя студента] из таблицы studentmaster для списка номер 1001.
Проверьте, что произойдет, если функция DLookup была задана без каких-либо критериев.
Newvar = DLookup(«[имя студента]»,»studentmaster»)
Приведенный выше код вернет данные в поле [имя студента] из первой записи таблицы studentmaster.
Вы также можете использовать переменные в критериях. Например, поле формы можно использовать как <условие>
Вам также может понравиться:
Узнайте 5 различных способов создания форм в базе данных Microsoft Access…!
Newvar = DLookup(«[имя студента]»,»studentmaster»,»[rollno]=Form![rollno]»)
Это поможет сравнить данные в поле [имя студента] из таблицы studentmaster с той, что находится в поле [rollno] текущей формы.
Чтобы указать текстовые критерии из поля в форме, включите одинарные кавычки.
Nvar = DLookup(«[rollno]»,»studentmaster»,
«[имя учащегося]=’ » & Forms![Marks]![имя учащегося] & » ‘ «)
В общем, мораль этой истории такова: Access DLookup используется как выражение в запросе MS Access или вычисляемое поле в форме для извлечения сторонних значений. Что ж, вы можете использовать это также в поле «Критерии» построителя запросов. Вот почему более эффективно создать новый запрос с полями обеих таблиц и использовать его в качестве базового набора записей.
Access DLookup выбирает сохраненные записи домена. Другая несохраненная запись не включена в домен.
Функция Microsoft Access DLookup Синтаксис:DLookup( expr, домен [ , критерии ] )
Синтаксис функции DLookup имеет следующие аргументы:
Expr:Часть Expression определяет поле, значение которого вы хотите вернуть. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или это может быть выражение, которое выполняет вычисление данных поля.
В части выражения синтаксиса функции DLookup Access вы можете указать имя поля в таблице, элемент управления или форму, константу или функцию. Если эта часть включает какую-либо функцию, то она может быть либо определяемой пользователем, либо встроенной, но не агрегатной функцией SQL или любой другой агрегатной функцией предметной области.
ДоменСтроковое выражение, которое идентифицирует набор записей, составляет доменную часть синтаксиса функции DLookup доступа. Это может быть имя таблицы или имя запроса для запроса, не требующего никаких параметров.
КритерииСтроковое выражение, используемое для ограничения диапазона данных, для которых выполняется функция DLookup. Предположим, что критерий эквивалентен предложению WHERE в выражении SQL без использования слова WHERE. Если критерии не указаны, то функция DLookup будет применена ко всему домену. Любое поле, включенное в критерий, должно быть полем в домене, иначе функция вернет значение NULL.
Посмотрите:
Узнайте все о коде Microsoft Access VBA — функциях VBA, ярлыках и многом другом…!
Доступ к базе данных Функция DLookup() возвращает одно значение из одного поля. Если ни одна запись не соответствует критериям или если домен пуст, функция DLookup() вернет значение Null. Если критериям соответствует более одной записи, то в этом случае DLookup вернет первый экземпляр этого <имя поля>.
Таким образом, критерии должны быть тщательно определены, чтобы получить уникальное поле из функции DLookup. Если ваш файл критериев является текстом, сохраните этот текст в одинарных кавычках.
Чтобы вычислить значения даты или времени, заключите время или значение данных в числовые знаки (#).
Как использовать функцию DLookup() в Access?Ниже описаны следующие обстоятельства, чтобы кратко узнать, как использовать функцию Dlookup() в Access.
1# DLookup для пустой записи данныхЕсли вы примените функцию Access DLookup к таблице или запросу, который содержит какие-либо записи, появится сообщение об ошибке с указанием «Недопустимое использование нуля» . Это происходит потому, что вы пытаетесь присвоить нулевое значение переменной strX.
Код:Dim strX As String
strX = DLookup(«HolidayDate», «tblHolidays»)
Me.txtResult = strX
Концевой переходник
Чтобы избежать этого сообщения об ошибке, вы можете использовать оператор IF, чтобы проверить, найдена ли запись, прежде чем присваивать значение результата strX.
Правильный код:2# DLookup with Textual CriteriaЧастная подпрограмма Command0_Click()
Dim strX As String
Если IsNull(DLookup(«HolidayDate», «tblHolidays»)) Then
MsgBox «Запись не найдена» ‘ или сделайте что-нибудь
Другое
strX = DLookup(«HolidayDate», «tblHolidays»)
Me.txtResult = strX
Конец, если
Концевой переходник
При использовании знака равенства в коде «[UserLoginID] = ‘John’» в качестве Результат этого критерия.
Результат будет отображаться как «Запись не найдена», поскольку нет записи с именем пользователя «Джон», но есть записи для «Джон Смит» или «Джон Ванг».
Код:3# DLookup без критериевЧастная подпрограмма Command0_Click()
If IsNull(DLookup(«[Имя пользователя]», «tblUser», «[Имя пользователя] = ‘john'»)) Then
Me.txtResult = «Запись не найдена»
Другое
Me.txtUserName = DLookup(«[Имя пользователя]», «tblUser», «[Имя пользователя] = ‘джон'»)
Конец, если
Концевой переходник
Это самый простой способ использования функции DLookup(); то есть без указания каких-либо критериев. В этом случае функция DLookup даст вам значение первой записи в поле CustomerName из таблицы tbl_Customer.
Таким образом, на выходе будет «Barney Rubble», поскольку это первая запись в таблице tbl_Customer, как показано на рисунке ниже.
Код:4# DLookup с числовым критерием, полученным из поля текущей формыЧастная подпрограмма Command0_Click()
Dim strX как строка
strX = DLookup(«CustomerName», «tbl_customer»)
Me.txtResult = strX
Конечный переходник
Код «[UserID] = Me.txtUserID» используется здесь в качестве числового критерия для DLookup в функции Access . Это покажет вывод «John Vang», потому что UserID 3 предназначен для имени пользователя «John Vang» в соответствии с таблицей tblUser, показанной выше.
Код:5# DLookup с текстовыми критериями, полученными из поля в текущей формеЧастная подпрограмма cmdGetResult_Click()
Me.Refresh
Если IsNull(Me.txtUserID), то
MsgBox «Пожалуйста, введите идентификатор пользователя»
Другое
If IsNull(DLookup(«[Имя пользователя]», «tblUser», «[UserID] = » & Me. txtUserID)) Then
Me.txtUserName = «Запись не найдена»
Еще
Me.txtUserName = DLookup(«[Имя пользователя]», «tblUser», «[UserID] = » & Me.txtUserID)
Конец, если
Конец, если
Концевой переходник
номер идентификатора пользователя из текущей формы
НЕ ПРОПУСТИТЕ:
Как создать сводную таблицу в MS Access и решить связанную с ней проблему
Код «[UserLoginID] = ‘» & Me.txtLoginID & «‘» используется в качестве критерия для функции доступа DLookup.
Предположим, вы хотите получить имя пользователя для введенного UserLoginID в текстовом поле UserLoginID в этой форме, а затем отобразить его над текстовым полем User Name.
Неправильно, если в текстовом поле UserLoginID вы вводите jvang, имя пользователя должно быть «John Vang». Здесь для этого кода используются два оператора IF, чтобы проверить, введен ли UserLoginID или нет, а также во избежание ошибки, если имя пользователя остается пустым для введенного UserLoginID.
Код:6# DLookup Query with Date CriteriaЧастная подпрограмма cmdGetResult_Click()
Me.Refresh
Если IsNull(Me.txtLoginID), то
MsgBox «Пожалуйста, введите UserLoginID»
Другое
If IsNull(DLookup(«[Имя пользователя]», «tblUser», «[UserLoginID] = ‘» & Me.txtLoginID & «‘»)) Then
MsgBox «Нет имени пользователя для этого UserLoginID»
Еще
Me.txtUserName = DLookup(«[Имя пользователя]», «tblUser», «[UserLoginID] = ‘» & Me.txtLoginID & «‘»)
Конец, если
Конец, если
Концевой переходник
DLookup Функция доступа MS также используется для просмотра информации по запросу. Код «[FinishDate] = #4/30/2014#» использовался в качестве критерия даты для DLookup в Access . После применения приведенного ниже кода вывод будет «Задача 5», потому что «Задача 5» имеет последнюю дату 30.04.2014 как запрос «задача выполнена» ниже.
Код:7# DLookup с числовыми критериямиЧастная подпрограмма Command0_Click()
If IsNull(DLookup(«[TaskName]», «задача завершена», «[FinishDate] = #30/4/2014#»)) Then
Me.txtResult = «Запись не найдена»
Другое
Me.txtResult = DLookup(«[TaskName]», «задача выполнена», «[FinishDate] = #30/4/2014#»)
Конец, если
Концевой переходник
В этом разделе код «[UserID] = 6» используется в качестве числового критерия для функции MS Access DLookup . На выходе будет отображаться «Адам Смит», поскольку для имени пользователя «Адам Смит» назначен идентификатор пользователя 6 .
Код:8# DLookup с кодом VBAЧастная подпрограмма Command0_Click()
If IsNull(DLookup(«[Имя пользователя]», «tblUser», «[UserID] = 6»)) Then
Me.txtUserName= «Запись не найдена»
Другое
Me.txtUserName = DLookup(«[Имя пользователя]», «tblUser», «[UserID] = 6»)
Конец, если
Концевой переходник
Пример в коде VBA
Вы также можете использовать функцию DLookup с кодом VBA в Access. Вот следующий пример, чтобы узнать, как использовать DLookup с кодом VBA:
Dim LDate As Date LDate = DLookup("ДатаЗаказа", "Заказы", "IDЗаказа = 10248")
В приведенном выше примере LDate используется как переменная, которая будет хранить значение OrderDate таблицы Orders. Из этой таблицы Orders в коде используется OrderID 10248.
Резюме:Надеемся, что вся вышеупомянутая информация о MS Функция Access DLookup покажется вам полезной для быстрого доступа к этой функции DLookup() в базе данных Access с этого момента. Функция DLOOKUP довольно проста в использовании, но только тогда, когда вы понимаете, как с ней работать. Итак, изучите , как использовать функцию доступа DLOOKUP по нескольким критериям, и попробуйте их все.
Если вы столкнулись с какой-либо дополнительной проблемой, связанной с функцией DLookup Access, задайте вопрос в нашем разделе комментариев. Вы обязательно получите немедленный ответ на свой запрос.
Проблемы остались? Исправьте их с помощью этого инструмента восстановления доступа:
Это программное обеспечение эффективно восстанавливает и восстанавливает все объекты ACCDB/MDB, включая таблицы, отчеты, запросы, записи, формы и индексы, а также модули, макросы и другие материалы.
- Загрузите Stellar Repair для Access с рейтингом Great на Cnet (загрузка начинается на этой странице ).
- Щелкните Browse и Search , чтобы найти поврежденную базу данных Access.
- Нажмите кнопку Восстановить , чтобы восстановить и просмотреть объекты базы данных.
Пирсон Уилли
Пирсон Уилли (Pearson Willey) — автор контента для веб-сайтов и специалист по планированию подробного контента. Помимо этого, он еще и заядлый читатель. Таким образом, он очень хорошо знает, как писать привлекательный контент для читателей. Писательство для него как растущий край. Ему нравится изучать свои знания в области MS Access и делиться техническими блогами.
Получение значения из таблицы: DLookup()
Советы Microsoft Access: Получение значения из таблицы: DLookup()Советы Microsoft Access для обычных пользователей
Предоставлено Алленом Брауном. Обновлено в июле 2006 г.
Рано или поздно вам нужно будет получить значение, хранящееся в таблице. Если вы регулярно выставляете счета компаниям, у вас будет таблица Company , содержащая все сведения о компании, включая поле CompanyID , и таблица Contract , в которой хранится только CompanyID для поиска этих сведений. Иногда вы можете основывать форму или отчет на запросе, содержащем все дополнительные таблицы. В других случаях DLookup() может спасти жизнь.
DLookup() ожидает, что вы зададите три элемента в скобках. Думайте о них как:
Найдите поле _____ в таблице _____, где запись _____
Каждый из них должен идти в кавычках, разделенных запятыми .
Вы также должны использовать квадратные скобки вокруг имен таблиц или полей, если имена содержат нечетные символы (пробелы, # и т. д.) или начинаются с цифры.
Наверное, проще всего это проследить на нескольких примерах:
- у вас есть CompanyID , например 874, и вы хотите напечатать название компании в отчете;
- у вас есть Категория , например «C», и вам нужно показать, что означает эта категория.
- у вас есть StudentID , например «JoneFr», и вам нужно полное имя учащегося в форме.
Пример 1:
Найдите поле CompanyName в таблице Company , где CompanyID = 874 . Это переводится как:
=DLookup("CompanyName", "Company", "CompanyID = 874")
Вы не хотите, чтобы компания 874 печаталась для каждой записи! Используйте амперсанд (&), чтобы соединить текущее значение в поле CompanyID вашего отчета с критерием «Company = «:
=DLookup("CompanyName", "Company", "CompanyID = " & [CompanyID])
Если CompanyID имеет значение null (как это может быть в новой записи), 3-й аргумент будет неполным, поэтому все выражение дает #Error. Чтобы избежать этого, используйте Nz() для предоставления значения, когда поле равно null:
=DLookup("CompanyName", "Company", "CompanyID = " & Nz([CompanyID],0))
Пример 2:
Приведенный выше пример верен, если CompanyID является числом. Но , если поле текстовое, Access ожидает вокруг него кавычки . Во втором примере мы ищем поле CategoryName в таблице Cat , где Category = ‘C’. Это означает, что DLookup становится:
=DLookup("ИмяКатегории", "Кошка", "Категория = 'C'")
Одинарные кавычки в двойных кавычках — это один из способов заключать кавычки в кавычки. Но опять же, нам не нужна категория «C» для всех записей: нам нужно, чтобы текущее значение из нашего поля категории было вставлено в цитату. Для этого мы закрываем цитату после первой одинарной кавычки, добавляем содержимое Category , а затем добавляем завершающую одинарную кавычку . Это становится:
=DLookup("CategoryName", "Cat", "Category = '" & [Category] & "'")
Пример 3:
В нашем третьем примере нам нужно полное имя из таблицы Student . Но в таблице студентов имя разбито на поля Имя и Фамилия , поэтому нам нужно обратиться к ним обоим и добавить между ними пробел .