Использование формы Microsoft Access для фильтрации данных из нескольких списков, текстовых полей и ComboBox - PullRequest
0 голосов
/ 14 января 2019

Я до сих пор не смог сделать это без ошибок.

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

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

Если я смогу сделать это из одной таблицы (как источника), как бы я поступил так, а также добавил бы текстовые поля и комбинированный список? При необходимости я могу предоставить свой код того, что у меня есть.

https://access -programmers.co.uk / форум / showthread.php? Т = 286294 & страница = 2

Код:

Private Sub Command62_Click ()

Dim db As DAO.Database

Dim qdf As DAO.QueryDef

Dim varItem As Variant

Dim strCriteria As String

Dim strCriteria1 As String

Dim strCriteria2 As String

Dim strSQL As String

Set db = CurrentDb ()

Установить qdf = db.QueryDefs ("qryMultiselect")

Для каждого варианта во мне! District.ItemsSelected

strCriteria = strCriteria & ",'" & Me!District.ItemData(varItem) & "'"

Следующая переменная

Если Len (strCriteria) = 0, то

MsgBox "You did not select anything in the Contract field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

Конец, если

strCriteria = Right(strCriteria, Len(strCriteria) - 1)

Для каждого варианта во мне! MOPointofEntry.ItemsSelected

strCriteria1 = strCriteria1 & ",'" & Me!MOPointofEntry.ItemData(varItem) & "'"

Следующая переменная

Если Len (strCriteria1) = 0, то

MsgBox "You did not select anything in the Name field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

Конец, если

strCriteria1 = Right(strCriteria1, Len(strCriteria1) - 1)

Для каждого варианта во мне! MOMethodofEntry.ItemsSelected

strCriteria2 = strCriteria2 & ",'" & Me!MOMethodofEntry.ItemData(varItem) & "'"

Следующая переменная

Если Len (strCriteria2) = 0, то

MsgBox "You did not select anything in the Type field." _

    , vbExclamation, "Nothing to find!"

Exit Sub

Конец, если

strCriteria2 = Right(strCriteria2, Len(strCriteria2) - 1)

strSQL = "SELECT * from TblDataEntry" & _

"ГДЕ TblDataEntry.District IN (" & strCriteria & ") И TblDataEntry.MOPointofEntry IN (" & strCriteria1 & ") И TblDataEntry.MOMethodofEntry IN (" & strCriteria2 & "10)" *

qdf.SQL = strSQL

DoCmd.OpenQuery "qryMultiselect"

1 Ответ

0 голосов
/ 15 января 2019

Поле со списком множественного выбора не является источником критериев запроса. эту тему вы можете посмотреть и увидеть другие вопросы и ответы о причинах и сложности попыток их использования.

Рекомендуется изменить на несколько списков, если это возможно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...