Связывание критериев запроса со значением в локальной таблице - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть таблица из 5 столбцов с тысячами строк, которые мне нужно отфильтровать. В форме, где отображается таблица, Form1, у меня есть текстовое поле Value1, где таблица будет отображать только те строки, где столбец 0 = Value1. Если значение1 пустое, будут отображены все строки.

Код ниже - это то, что в настоящее время используется в критериях и / или поле моего построителя запросов и отлично работает:

Like [Forms]![Form1]![Value1] & "*"
IsNull([Forms]![Form1]![Value1])

Моя цель - чтобы критерии взяли значение из таблицы, а не из формы. Я создал форму, которая появляется перед Form1, которая позволяет вам вставить Value1, а затем нажать Search. Затем значение переходит в [Table1]! [Value1], затем открывает Form1 и отображает отфильтрованные результаты. Я успешно ввожу Value1 в Table1, но, похоже, не могу заставить запрос реагировать на [Table1]! [Vale1]. Я пробовал несколько разных кодов, приведенный ниже пример кода:

Like [Tables]![Table1]![Value1] & "*"
IsNull([Tables]![Table1]![Value1])

Есть предложения?

1 Ответ

0 голосов
/ 05 апреля 2019

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

Dlookup("Value1","Table1")

Это будет хорошо работать, если у вас есть только одно значение в таблице. Если в таблице несколько значений и вам нужно указать конкретное значение, вам нужно добавить фильтр в третий параметр функции Dlookup.

Dlookup("Value1","Table1","TableFieldName=" & [Value])

или, если значением критерия является строка

Dlookup("Value1","Table1","TableFieldName='" & [Value] & "'")

или, если значением критерия является дата

Dlookup("Value1","Table1","TableFieldName=#" & [Value] & "#")

См. Также документы по адресу: https://docs.microsoft.com/en-us/office/vba/api/access.application.dlookup

...