Как включить опцию «Выбрать все» в поле со списком? - PullRequest
0 голосов
/ 07 мая 2019

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

Теперь я хочу включить параметр "Select All" в поле со списком, который будет отображать все транзакции моих дистрибьюторов.Я попытался сделать это с помощью UNION Query, и до сих пор он не работал.

Вот код ниже:

SELECT Sous_Compte.Sous_Compte_ID, Sous_Compte.Numero_Sous_Master, Sous_Compte.Prenom & " " & Sous_Compte.Nom AS Nom 
FROM Sous_Compte

UNION SELECT "*" AS Sous_Compte_ID, "(All)" as Numero_Sous_Master, " " AS Nom from Sous_Compte

ORDER BY Sous_Compte.Numero_Sous_Master;

И это сообщение об ошибке я получаю всякий раз, когда явыберите "(All)":

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

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Настройка свойств Master / Child Links не будет работать, потому что символ * не может быть ключевым значением.Но может ссылаться на комбинированный список в динамическом параметризованном запросе, таком как:

SELECT * FROM tablename WHERE ID LIKE Forms!formname!comboboxname;

Тогда этот запрос может быть RecordSource формы.

После выбора элемента в выпадающем списке, необходимо обновить / запросить форму.Может использовать событие Combobox AfterUpdate или событие Click кнопки.Если вы используете одну форму, просто: Me.Requery.При использовании подчиненной формы через элемент управления контейнера подчиненной формы необходимо указывать: Me.subformcontainername.Requery.(Обратите внимание, что это исправляет мой комментарий о том, что подчиненная форма не будет работать при открытии - подчиненная форма будет работать.)

Этот динамический параметризованный запрос также может быть источником записей отчета.Или, если вы не хотите использовать тот же запрос, что и отчет RecordSource, можете использовать аргумент WHERE CONDITION метода OpenReport:

DoCmd.OpenReport "reportname", , , "ID LIKE Forms!formname!comboboxname"

0 голосов
/ 08 мая 2019

Поля двух запросов должны совпадать:

SELECT 
    Sous_Compte.Sous_Compte_ID, Sous_Compte.Numero_Sous_Master, Sous_Compte.Prenom & " " & Sous_Compte.Nom AS Nom 
FROM 
    Sous_Compte
UNION 
SELECT 
    0, "(All)", ""
FROM
    Sous_Compte
ORDER BY 
    Sous_Compte.Numero_Sous_Master;
...