|
Выборка
|
|||
---|---|---|---|
#18+
Добрый день всем! Прошу подскажите, возможен ли такой вариант: есть запрос на выборку, в качестве условий отбора хочу прописать функцию Proc, функция проверяет поле со списком и если там есть значение, то выборка идет по этому значению, а если там ничего нет, то должно выбираться все. Proc = IIf(IsNull([Forms]![Общая]![ПолеСоСписком116]), "*", [Forms]![Общая]![ПолеСоСписком116]) Если значение есть, то все работает, а вот если его нет...то и выборки нет... Или я хочу чего-то ненормального? С уважением Сергей ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 17:50 |
|
Выборка
|
|||
---|---|---|---|
#18+
F_Sergeyв качестве условий отбора хочу прописать функцию Proc как вы делаете все остальные действа с базой --только мастер и внедренные макросы --программирование тоже применяете F_Sergeyфункция проверяет поле со списком и если там есть значение непонятно , вы ищете Иванова --поле со списком,подстановка --как же вы занесли в поле фамилию Иванов, если ее нет в справочнике ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 18:05 |
|
Выборка
|
|||
---|---|---|---|
#18+
похоже, что меня заклинило --сама не поняла вторую часть предыдущего сообщения естественно Иванов может быть в справочнике и не быть в основной таблице а может его и в справочнике нет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 18:11 |
|
Выборка
|
|||
---|---|---|---|
#18+
F_Sergey, в запросе отобразить все: ...WHERE True отбор: ....WHERE условие По моему лучше так (или ленточная форма-первая найденная запись выделится): ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:13 |
|
Выборка
|
|||
---|---|---|---|
#18+
F_Sergey, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:33 |
|
Выборка
|
|||
---|---|---|---|
#18+
Перед функцией IIf(IsNull([Forms]![Общая]![ПолеСоСписком116]), "*", [Forms]![Общая]![ПолеСоСписком116]) поставьте оператор Like и получите то то надо. Именно выражение Like "*" означает показать всё, а у вас получается показать "*". А звёздочек то у вас и нет, вот и пусто. И написать всё это надо в условии в самом запросе = Like IIf(IsNull([Forms]![Общая]![ПолеСоСписком116]), "*", [Forms]![Общая]![ПолеСоСписком116]). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 02:03 |
|
Выборка
|
|||
---|---|---|---|
#18+
Да чуть не забыл, при моём варианте пустых (NUll) значений в выборке не окажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 02:11 |
|
Выборка
|
|||
---|---|---|---|
#18+
Добрый день! Like я использовал в самом запросе в условиях отбора, но эта конструкция не работает при переходе на другую версию офиса, с 2013 на 2016. Вот я и задался целью вместо этого варианта написать функцию и в условиях отбора на нее сослаться. Функция срабатывает когда в поле со списком есть информация, а вот звездочка "*" не работает, может можно вместо нее задать какое-то другое условие когда в поле отсутствует что-либо? С уважением Сергей ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 09:23 |
|
Выборка
|
|||
---|---|---|---|
#18+
Geizer1Да чуть не забыл, при моём варианте пустых (NUll) значений в выборке не окажется. Код: vbnet 1.
а так окажется ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 12:02 |
|
Выборка
|
|||
---|---|---|---|
#18+
sdku, нет True не возвращает "пустое" значение... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 12:34 |
|
Выборка
|
|||
---|---|---|---|
#18+
вот так это выглядит в конструкторе: ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 14:32 |
|
Выборка
|
|||
---|---|---|---|
#18+
Вот пример 2-х вариантов решения. Надо отметить что вариант с которого начинали (с оператором Like) будет всегда переберать все строки-записи поочереди, и в результате работать медленнее чем с логикой. Посмотри запросы в режиме конструктора там всё понятно, работать будут оба варианта во всех офисах. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 14:49 |
|
Выборка
|
|||
---|---|---|---|
#18+
Geizer1, Спасибо, этот вариант я знаю и использую, но мне нужен вариант именно через функцию, которая в условия выборки будет возвращать либо конкретного поставщика, либо ничего, чтобы выбрать всех... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 15:09 |
|
Выборка
|
|||
---|---|---|---|
#18+
F_SergeyGeizer1, Спасибо, этот вариант я знаю и использую, но мне нужен вариант именно через функцию, которая в условия выборки будет возвращать либо конкретного поставщика, либо ничего, чтобы выбрать всех... Вот с возвращением значения (Null) у функций как раз и могут быть проблемы, лучше это логикой обходить. А вот значение на (Null) проверить и в условие (Null) вставить это можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 16:53 |
|
Выборка
|
|||
---|---|---|---|
#18+
Я в базе зарезервировал символ "_" для замены им значения (Null). Конечно это не позволяет его использовать в работе как вводимое значение пользователем, но зато снимает все проблемы (Null). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 17:04 |
|
Выборка
|
|||
---|---|---|---|
#18+
F_Sergeyфункция проверяет поле со списком и если там есть значение... А вариант с тысячами записей в которых фигурирует 200-500 фамилий(вполне реально)-в полеСоСписком окажется 200-500 строк и нужную надо будет искать в списке-не проще ли по начальным буквам,а затем в выборке при щелчке на нужной вывести подробности по ней (когда в базе будет 200-500 фамилий,то и поиск будет после поиска в списке Combo-или Ваша БД расчитана на количество фамилий которые поместятся на экран?) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:48 |
|
|
start [/forum/topic.php?fid=45&fpage=31&tid=1610663]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 358ms |
total: | 509ms |
0 / 0 |