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

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

10.09.2021, 22:16. Показов 5848. Ответов 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
13227 / 5912 / 1519
Регистрация: 05.10.2016
Сообщений: 16,557
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
13227 / 5912 / 1519
Регистрация: 05.10.2016
Сообщений: 16,557
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 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
14.09.2021, 22:45
glsn,

Я Ваше отношение запомню на будущее.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 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 / 707
Регистрация: 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 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
15.09.2021, 18:44
glsn,

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

Если да, то какой второй список должен быть, по какой характеристике?
0
Эксперт MS Access
 Аватар для Eugene-LS
13227 / 5912 / 1519
Регистрация: 05.10.2016
Сообщений: 16,557
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 / 707
Регистрация: 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 / 707
Регистрация: 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 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
16.09.2021, 13:22
Цитата Сообщение от glsn Посмотреть сообщение
а если просто самому после добавления теги удалить вручную (т.е. оставить код вложения просто) будет работать?
Всё надо удалять, включая цифирь.
Но зачем их вообще добавлять.

Цитата Сообщение от glsn Посмотреть сообщение
Цитата Сообщение от Capi Посмотреть сообщение
Вы поменяли порядок строк кода
вообщем еще мне учится и учится
Тут другое.
Излишняя самоуверенность и склонность к оригинальничанью.
Зачем, например, запрос на объединение величать "запрос СОЮЗ"?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
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
Ответ Создать тему
Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru