Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519

Фильтр пустых значений через ListBox

10.09.2021, 22:16. Показов 6220. Ответов 55

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане.
Прошу помощи в решении одной задачи. В архиве кусок базы с формой фильтрации записей подчиненной формы через ListBox (список). Однако, по полю фильтрации (в конкретном случае - Глубина) имеются и пустые значения, которые в т.ч. нужно будет просматривать(при необходимости).
Столкнулся с проблемой присваивания выбранному 1 значению - параметра [Поле] Is Null с учетом того, что в связке будут выбираться и другие имеющиеся в списке для фильтрации значения.
Прошу подсказать (направить) решение вопроса (для полного понимания см файл в архиве).
И еще прошу подсказать: возможно ли в запросе на объединение как то внесенную запись (пустые) - переместить в конец списка, а не в его начало (как в файле)?
Вложения
Тип файла: rar ListBoxFilter.rar (45.4 Кб, 10 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.09.2021, 22:16
Ответы с готовыми решениями:

Как добавить в массив текст пройденный через проверки без пустых значений
Добрый день. На сайте имеется текстовое поле "textarea" и кнопка "добавить". В "textarea" находится текст: qw: 123 qq:...

Поиск значений через фильтр
Подскажите почему у меня поиск выполняется только по названиям, а к пример по дате и по числовому полю нет. private void...

Удаление пустых строк в ListBox
Private Sub ListBox1_Enter() For k = 2 To 50 If Cells(i + 1, 1).Value <> " " Then ListBox1.AddItem Cells(i + k, 1).Value End If ...

55
Эксперт MS Access
 Аватар для Eugene-LS
13269 / 5946 / 1529
Регистрация: 05.10.2016
Сообщений: 16,640
14.09.2021, 20:05
Студворк — интернет-сервис помощи студентам
glsn, вот вам ещё один вариант на тестирование.
Меняем не источник строк формы, а просто фильтруем форму.
Вложения
Тип файла: zip ListBoxFilter_v04.zip (64.7 Кб, 2 просмотров)
1
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
14.09.2021, 21:24  [ТС]
Цитата Сообщение от Capi Посмотреть сообщение
Где это?
в запросе

Ваша база действительно работает быстро
и вместе с тем конечно же отличный вариант от Eugene-LS на фильтрацию
конечно еще одна сложность у меня...
дело в том, что пример сам это лишь набросок от базы
помимо глубины залегания есть еще и код дефекта (текстовое значение)
данная конструкция должна работать в одной связке (т.к. важно фильтровать по коду, а при необходимости смотреть по глубине в рамках кода/кодов). Не могли бы помочь в такого рода связке?
ListBoxFilter_NEW.rar
0
Эксперт MS Access
 Аватар для Eugene-LS
13269 / 5946 / 1529
Регистрация: 05.10.2016
Сообщений: 16,640
14.09.2021, 22:17
Лучший ответ Сообщение было отмечено glsn как решение

Решение

Цитата Сообщение от glsn Посмотреть сообщение
данная конструкция должна работать в одной связке (т.к. важно фильтровать по коду, а при необходимости смотреть по глубине в рамках кода/кодов)
Вот вариант с фильтрацией:
Вложения
Тип файла: zip ListBoxFilter_v05.zip (70.2 Кб, 3 просмотров)
1
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
14.09.2021, 22:30  [ТС]
Спасибо Вам, спасибо Capi
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
14.09.2021, 22:45
glsn,

Я Ваше отношение запомню на будущее.
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
15.09.2021, 02:03
Цитата Сообщение от glsn Посмотреть сообщение
А что такое %$##@_Alias?
Алиас (псевдоним) присвоенный автоматически - AS [%$##@_Alias].

Можете написать вместо этого AS Q.
И тогда редактор запросов вмешиваться в синтаксис не будет.
2
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
15.09.2021, 17:02  [ТС]
спасибо
попытался настроить вчера по Вашему методу двойной фильтр, но пока сделал лишь на 2 списка отдельно, а вместе не вышло
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
15.09.2021, 18:17
glsn,

По чьему методу?
0
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
15.09.2021, 18:32  [ТС]
по написанному вчера Вами примеру
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
15.09.2021, 18:44
glsn,

Вы ко мне обращаетесь?

Если да, то какой второй список должен быть, по какой характеристике?
0
Эксперт MS Access
 Аватар для Eugene-LS
13269 / 5946 / 1529
Регистрация: 05.10.2016
Сообщений: 16,640
15.09.2021, 19:48
glsn, что бы обратится к конкретному участнику обсуждения просто щёлкните по его нику слева, или напишите так:
Visual Basic
1
[nick]Ник Форумчанина[/nick]
будет понятно + ему прилетит уведомление на почту ...
0
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
15.09.2021, 20:28  [ТС]
Eugene-LS, спасибо за подсказку, добрый вечер
Capi, да к Вам
смотрите: попробовал переделать Ваш код под текстовые значения (поскольку код будет текстовым т.к. должен содержать точку + могут быть буквы - такая специфика)
получилось следующее
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub DefCodeList_AfterUpdate()
 Dim x, _
     S1 As String
     
    If Me.DefCodeList.ItemsSelected.Count > 0 Then
        For Each x In Me.DefCodeList.ItemsSelected
            S1 = S1 & ",'" & Me.DefCodeList.Column(0, x) & "'"
        Next
            If Len(S1) > 0 Then
                S1 = "КодДефекта In (" & Mid(S1, 2) & ")"
            Else
                S1 = ""
            End If
    S1 = S1
    'Else
    End If
 
 S1 = "SELECT * FROM qRecAll" & S1
 Debug.Print S1
End Sub
по проверке через Debug.Print все корректно вроде выходит

по фильтрации тоже...
но Вот когда начал собирать оба в одно что то не вышло
собирал все в одной функции, на AfterUpdate списков её вызывал
в переменных присваивал просто сборку In т.е. S1 = S1 и т.д.
далее, строковой переменной присвоил sql = " and " & S & SS & S1
первый And исключил через Mid
строковой переменной прописал запрос rec = "SELECT * FROM qRecAll where " & sql
в задумке д.б. получится что то вроде
SELECT * FROM qRecAll where In(перечисления,чисел,первого,списка) And In('текст','второго','списка')
ну и запустил подчиненную Me.frmPf.Form.RecordSource = rec
но увы чуда не случилось
где же я обманулся?
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
15.09.2021, 21:58
glsn,

Посмотрю. Позже.

У меня в БД нужные данные есть?
Если нет, лучше выложите БД с ними.

Добавлено через 10 минут
Смотрю код (с планшета, могу не все заметить).
И вижу, что Debug-то выдает чушь.
"все корректно вроде выходит", говорите?
А как же склейка имен таблицы и поля?
А как же отсутствие WHERE?

В общем, выкладывайте БД (если нужно).

Посмотрю потом.

Добавлено через 4 минуты
Да, новую БД выкладывайте обязательно - там ведь новый список в форме должен быть.
1
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
15.09.2021, 22:39  [ТС]
Цитата Сообщение от Capi Посмотреть сообщение
новую БД выкладывайте
...
Вложения
Тип файла: rar ListBoxFilter_NEW.rar (141.8 Кб, 2 просмотров)
0
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
16.09.2021, 10:52  [ТС]
Capi, я сделал сам. Посмотрите - м.б. как то можно "упростить" или все норм?
Спасибо еще раз

еще вопрос по уже форуму: а как Вы вкладываете вложения, чтобы не как у меня выше, а как Вы откорректировали выше было? ) стыдно сказать, но сколько лет на форуме, а так и не научился
Вложения
Тип файла: rar ListBoxFilter_NEW.rar (150.3 Кб, 3 просмотров)
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
16.09.2021, 11:43
glsn,

Ваше посмотреть пока некогда.

Мой вариант посмотрите.

Но не начинайте "улучшать", от этого только порча получается.
Вот Вы в процедуре для первого списка добавили Else S = "" - это бессмысленно в силу самого условия If.
Вы поменяли порядок строк кода, что привело к ошибке формирования условия для варианта "(пустые)".
Вы убрали Option Explicit - оригинально, конечно, но...
И так далее.

Цитата Сообщение от glsn Посмотреть сообщение
а как Вы вкладываете вложения, чтобы не как у меня выше, а как Вы откорректировали выше было?
Просто не надо их раскладывать по сообшению через Управление вложениями.
Просто добавьте через "скрепочку", и всё.
Выбрать, загрузить - этого достаточно.
Раскладывают по тексту обычно картинки и тому подобное.

Ваш вариант посмотрю попозже.
Вложения
Тип файла: zip ListBoxFilter_NEW2.zip (56.7 Кб, 7 просмотров)
1
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
16.09.2021, 12:59  [ТС]
Capi, у Вас отличный вариант, спасибо
Цитата Сообщение от Capi Посмотреть сообщение
добавьте через "скрепочку"
ок, попробую
а если просто самому после добавления теги удалить вручную (т.е. оставить код вложения просто) будет работать?
Цитата Сообщение от Capi Посмотреть сообщение
Вы поменяли порядок строк кода
вообщем еще мне учится и учится
0
Модератор
Эксперт MS Access
6231 / 2909 / 708
Регистрация: 12.06.2016
Сообщений: 7,839
16.09.2021, 13:22
Цитата Сообщение от glsn Посмотреть сообщение
а если просто самому после добавления теги удалить вручную (т.е. оставить код вложения просто) будет работать?
Всё надо удалять, включая цифирь.
Но зачем их вообще добавлять.

Цитата Сообщение от glsn Посмотреть сообщение
Цитата Сообщение от Capi Посмотреть сообщение
Вы поменяли порядок строк кода
вообщем еще мне учится и учится
Тут другое.
Излишняя самоуверенность и склонность к оригинальничанью.
Зачем, например, запрос на объединение величать "запрос СОЮЗ"?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
16.09.2021, 13:59
Цитата Сообщение от glsn Посмотреть сообщение
вообщем еще мне учится и учится
русскому языку, что делать - учиться, что делает - учится
0
604 / 127 / 45
Регистрация: 12.04.2015
Сообщений: 519
16.09.2021, 14:20  [ТС]
Цитата Сообщение от Capi Посмотреть сообщение
Зачем, например, запрос на объединение величать "запрос СОЮЗ"?
просто UNION с агл. переводится как "союз"
я не величаю, лишь в комментарии как то упомянул. Запрос на объединение это запрос на объединение (.)

Добавлено через 1 минуту
Цитата Сообщение от alvk Посмотреть сообщение
русскому языку, что делать - учиться, что делает - учится
Массаракш.... точно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2021, 14:20

Как через listbox добавить название меню, а через listbox обработчик?
Как известно, в ListBox можно добавлять элементы любого типа. Заполните ListBox несколькими обработчиками событий. Пусть пользователь...

Поиск пустых ячеек. Поиск ссылки на оригинальных значений для повторяющихся значений
Ребят, всем привет. В связи с тем, что firefox прекращает поддержку функции группы вкладок, пришлось их перебирать. И начали возникать...

Поиск пустых значений
Я совсем новичок в Дельфи, и не могу справиться с простейшей задачей, которая, скажем, в VB решается элементарно. Имеется массив...

Заполнение пустых значений
Очень нужна ваша помощь! Есть такой запрос: SELECT DATE(calldate) AS calldate, COUNT(DISTINCT uniqueid) FROM cdr WHERE calldate >...

Проверка пустых значений
Привет всем. Делаю проверку формы, но почему-то не получается определить пустые поля. Вот код. var hvCmd = false, el = null; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru