Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023

Фильтрация по полям

10.06.2018, 22:41. Показов 1513. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Помогите, пожалуйста, решить такую задачку.

Есть форма на ней несколько полей для фильтрации отчета (поля: фамилия, дело, сделал), а также поля для фильтрации по дате (datas, datae). Пытаюсь кодом сделать фильтрацию по всем полям. Сейчас в событии на кнопке № 2, прописан код на фильтрацию по дате и по фамилии.
И тут две проблемы: первая - если вбить даты, то ругается на синтаксис; вторая - не могу прописать полный фильтр по всем трем полям, если прописать той же конструкцией, что и по фамилии, то фильтруется по последнему.
Вложения
Тип файла: zip форум.zip (97.5 Кб, 6 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2018, 22:41
Ответы с готовыми решениями:

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

Фильтрация по нескольким полям
Есть БД в Access. На форме datagridview с данными о преподавателях. Нужно сделать поиск по всем полям(или по максимально возможному...

Фильтрация формы по незаполненным полям (псевдологическое условие)
Ребята, помогите. Есть таблица данных на авторов, где есть поле "Публикации" типа MEMO, которое содержит информацию о публикациях автора....

20
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 22:49
Цитата Сообщение от Kiriver Посмотреть сообщение
не могу прописать полный фильтр по всем трем полям, если прописать той же конструкцией, что и по фамилии, то фильтруется по последнему.
Ну... всё как обычно ...
Точка входа где? - по какой кнопке и в какой форме - или догадываться нужно?

Добавлено через 2 минуты
Kiriver, Решение учебное или профессиональное?
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 22:51  [ТС]
Eugene-LS, пардон)) забыл кнопку подписать.

форма - 1, кнопка №2.
Вложения
Тип файла: zip форум.zip (96.3 Кб, 4 просмотров)
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 22:52  [ТС]
Eugene-LS, смешанное. я самостоятельно учусь на реальных задачах, если так можно выразиться,т.е. база пойдет в работу.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 22:59
Kiriver, решение на VBA (профессиональное) - сгодиться?
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 23:06  [ТС]
Eugene-LS, конечно! к VBA я пока только подбираюсь, так что примеры мне очень нужны.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 23:15
Цитата Сообщение от Kiriver Посмотреть сообщение
так что примеры мне очень нужны.
Повисите с пол часика - щас нарисую ...

Добавлено через 5 минут
Kiriver, в вашем файле нет кнопки с именем "кнопка №2"
Вообще пробелы не допустимы в названиях программируемых объектов формы.

Добавлено через 1 минуту
Kiriver, Это "Кнопка2" - понял ...
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 23:17  [ТС]
Eugene-LS, блин, извините, просто "Кнопка2".
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 23:25
Kiriver, Итак - простой вопрос:
Что должно происходить по клику на кнопку "Кнопка2" ???

Добавлено через 7 минут
Kiriver, А! Понял ...
Ну так это нужно фильтрацию в отдельную процедуру выводить ....
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 23:27  [ТС]
Eugene-LS, должно выводится: сколько раз занимался тем-то, такой-то и закончил ли он работу в определенный промежуток времени. Например, сколько раз занимался Севостьянов покраской и доделал ли с 01.01.2017 по 10.01.2017?

Добавлено через 1 минуту
Eugene-LS, в итоге это будет статистическая база данных. мне надо считать количество событий с определенными параметрами.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 23:35
Kiriver, да понял, я понял - я-же вам и писал ... (давно)
А что толку - вы не изучили и так и не поняли, что и зачем...
Печалька однако ...
(Я свой код узнаю всегда... (у каждого своя стилистика написания кода - и всё правильно!))
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 23:42  [ТС]
Eugene-LS, да писали вы. изучение идет, к сожалению, не теми темпами как хотелось бы. БД - не моё направление работы, даже не близко - это хобби, по вечерам посидеть-подумать, поэтому я мелкими шагами иду. А писали, вы не так и давно, всего пару месяцев назад, когда я об Аксессе знал, только то, что он есть)). Кстати, та БД, в который вы писали этот код, получилась практичная и удобная, пользователи довольны.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
10.06.2018, 23:45
Kiriver, Подсказка:
Выводите фильтрацию формы в отдельную процедуру Private Sub FormRefilter() допустим
Дальше её вызывайте при каждом изменении фильтрующих полей ...
Управитесь?
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
10.06.2018, 23:50  [ТС]
Eugene-LS,честно - врятли. Я пока только со встроенными функциями акссеса разбираюсь. В ВБА только простейшие действия. Но если у вас нет времени, то направление мне ясно - буду разбираться.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
11.06.2018, 00:05
Цитата Сообщение от Kiriver Посмотреть сообщение
врятли
Ну "врятли" так... "врятли" - сейчас порешаю нечто ...

Добавлено через 9 минут
Kiriver, по каким полям формы фильтруем? - по всем?
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
11.06.2018, 00:08  [ТС]
Eugene-LS, да, по периоду и по трем полям значений.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
11.06.2018, 00:21
Kiriver, по поводу поля "Сделал?" в форме у вас ошибка - разбирать не стал уже.
А в остальном:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Private Sub FormRefilter()
'Рефильтр Формы.
'
'--------------------------------------------------------------------------
  
Dim s$
 
 
On Error GoTo FormRefilter_Err
 
'фильтр по датам (не универсальный пока - дабы не запутывать ТС)
    If IsNull(Me!datas) = False And IsNull(Me!datae) = False Then 'указаны обе даты
        'Фильтрация по обоим полям
        s = " AND data Between " & Format(Me!datas, "\#mm\/dd\/yyyy\#") & " AND " & Format(Me!datae, "\#mm\/dd\/yyyy\#")
    
    Else 'указана только одна из дат
        If IsNull(Me!datas) = False Then
            s = " AND data >= " & Format(Me!datas, "\#mm\/dd\/yyyy\#")
        End If
        If IsNull(Me!datae) = False Then
            s = " AND data <= " & Format(Me!datae, "\#mm\/dd\/yyyy\#")
        End If
    End If
 
'фильтр по фамилии
    If IsNull(Me!txtF) = False Then
        s = s & " AND [f] = '" & Me!txtF & "'"
    End If
   
 'фильтр по Дело
    If Me!txtDelo.ListIndex <> -1 Then 'значение выбрано в списке ....
        s = s & " AND delo = '" & Me!txtDelo & "'"
    End If
   
   
    If Len(s) > 5 Then
      s = Mid(s, 6)
      Me.Filter = s
      Me.FilterOn = True
    Else
      Me.Filter = ""
      Me.FilterOn = False
   End If
    
    'Debug.Print s
 
 
 
FormRefilter_Bye:
    Exit Sub
 
FormRefilter_Err:
    MsgBox "Error: " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in Sub: FormRefilter in module: Form_dats", vbCritical, "Error in Application"
    Err.Clear
    Resume FormRefilter_Bye
End Sub
Вложения
Тип файла: zip форум_v003.zip (45.0 Кб, 17 просмотров)
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
11.06.2018, 00:25  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение

If Len(s) > 5 Then
* * * s = Mid(s, 6)
вот эту конструкцию объясните, пожалуйста! что означают функции я понимаю, а зачем они используются тут -нет.
0
Эксперт MS Access
 Аватар для Eugene-LS
12358 / 5865 / 1501
Регистрация: 05.10.2016
Сообщений: 16,473
11.06.2018, 00:28
Цитата Сообщение от Kiriver Посмотреть сообщение
вот эту конструкцию объясните, пожалуйста!
Поскольку мы изначально не знаем сколько указано условий, одно или все, пред ставим " AND "
Этот код обрезает первый (не нужный) " AND " (5 символов) - чтение строки с символа №6!
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
11.06.2018, 00:36  [ТС]
Eugene-LS, понятно! что-то я про " AND " даже и не подумал. пойду разбираться дальше, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.06.2018, 00:36
Помогаю со студенческими работами здесь

Фильтрация результатов формы по нескольким полям и полю со списком
Доброго времени суток! Понимаю, что вопросы по фильтрации поднимались не раз, но не знаю как решить проблему фильтрации либо одному из...

Фильтрация по нескольким полям разделенной формы Access 2007
Задача в следующем: есть таблица Main, содержимое ее полей отображается в разделенной (Access 2007) форме Общий_ввод_данных. Фильтрация...

Фильтрация по двум полям
проблема вот в чем нужно найти записи в базе но они организованы таким образом что запись 1 пзапись 1 _________пзапись 2 ...

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

Фильтрация по двум полям
Добрый день. Необходимо сделать фильтрацию по двум полям: &quot;Код_группы&quot; и &quot;Код_приказа&quot;. Т.е пользователь выбирает группу, вводит...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru