Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
1

Использование нескольких checkbox в запросе

23.01.2018, 12:40. Показов 2615. Ответов 16

Author24 — интернет-сервис помощи студентам
Здравствуйте Уважаемые!

Необходима по возможности Ваше время и помощь, а то разум за разум заходит, прилагаю маленьку БД, в которой необходимообъяснить чайнику(это я) как создать запрос в котором:

будет проходить выборка NAME
за день(дату можноуказать)
за месяц (выбираем из списка)
за квартал (выбираем из списка)
за полугодие (выбираем из списка)

+ как условие выбора чукча придумал ограничение чекбоксами, но как культурно записать в запросе чукча не придумал(((

По возможности жду Ваших советов (желательно по теме), пожеланий (хотя бы "брось акцесс не для тебя") а если кто на приложенном примере покажет как это делается то радость моя затмит солнце на заснеженной улице
Вложения
Тип файла: zip Database19.zip (90.7 Кб, 5 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2018, 12:40
Ответы с готовыми решениями:

Использование нескольких циклов и нескольких условий
Есть компетиции (TT1, TT2, TT3 и т.д.), каждой компетенции соответствуют 3 уровня ее освоения -...

Проверка нескольких CheckBox
Есть 6 CheckBox-ов, каждому присвоена константа от A до F, есть переменная PassChar которая состоит...

Обработка нескольких Checkbox
На форме есть четыре чекбокса. Один включает и выключает остальные три. Остальные три включают...

Флажки в нескольких checkbox
Здравствуйте. Есть форма, на ней skrollbox, а на нем 4 checkbox Нужно сделать так, чтобы при...

16
10474 / 5459 / 1375
Регистрация: 05.10.2016
Сообщений: 15,480
23.01.2018, 13:49 2
Цитата Сообщение от el_virun Посмотреть сообщение
за день(дату можноуказать)
за месяц (выбираем из списка)
за квартал (выбираем из списка)
за полугодие (выбираем из списка)
Ну с конкретной датой всё понятно.
А вот:
за месяц - Какого года?
за квартал - Какого года?
... и т.д.

Можно соорудить переключатель - День, месяц, год, квартал ... или КомбоБокс на эту тему
Ну о дальше строим фильтр по двум (трём + год) значениям ...
1
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
23.01.2018, 14:00  [ТС] 3
Dear Eugene-LS
дело в том, что необходимо именно решение поставленного вопроса-т.к. эта выложенная база только тестовая площадка для субд что я делаю, в которой идет выборка заранее по году, фамилии и еще прочим параметрам,

необходимо решение в котором в запросе будут варьироваться условия отбора по дате (день, месяц, первых три, втроых три месяца и пр.) в зависимости от "нажатого" необходимого чекбокса

т.е. в этой бд я с Вашей помощью и остальных гуру надеюсь разобраться с проблемой и после уже переработать найденное решение для своей основной бд

Спасибо за Ваше внимание и предложения и за то, что сразу стараетесь подсказать в нескольких направлениях
0
10474 / 5459 / 1375
Регистрация: 05.10.2016
Сообщений: 15,480
23.01.2018, 14:47 4
Лучший ответ Сообщение было отмечено el_virun как решение

Решение

el_virun, ну тогда нечто такое:

Не полностью - полугодие сами допишите
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
Private Sub SubFormRefilter()
'Рефильтрация подчинённой формы
Dim s$
 
'День
    If Me!CheckDAY = True And IsNull(Me!Text0) = False Then
        s = "DATA = " & Format$(Me!Text0, "\#mm\/dd\/yyyy\#")
    End If
'Месяц
    If Me!CheckMONTH = True And Me!Combo4.ListIndex <> -1 Then
        s = "Month([DATA])=" & Me!Combo4
    End If
 
'Квартал = WHERE DatePart("q",[DATA])=2;
    If Me!CheckQUART = True And Me!Combo8.ListIndex <> -1 Then
        s = "DatePart('q',[DATA])=" & Me!Combo8
    End If
 
 
    If Len(s) > 0 Then
        Me![Q1 subform].Form.Filter = s
        Me![Q1 subform].Form.FilterOn = True
    Else
        Me![Q1 subform].Form.Filter = ""
        Me![Q1 subform].Form.FilterOn = False
    End If
End Sub
1
10474 / 5459 / 1375
Регистрация: 05.10.2016
Сообщений: 15,480
23.01.2018, 14:48 5
Файлик:
Вложения
Тип файла: zip Database19_v02.zip (36.1 Кб, 9 просмотров)
1
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
23.01.2018, 15:06  [ТС] 6
Dear Eugene-LS

Спасибо огромное!!! Буду ковырять и изучать новые данные)))
0
10474 / 5459 / 1375
Регистрация: 05.10.2016
Сообщений: 15,480
23.01.2018, 15:18 7
el_virun, ещё:
Задавайте внятные имена объектов в формах.
т.е. вместо:
Text0 -> TextDate (или txtDate)
Combo4 -> ComboMonth (или cbxMonth)
и т.д. ...
Вам же ориентироваться будет проще.
Успехов!
2
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
23.01.2018, 20:39  [ТС] 8
Да спасибо за совет-на основе так и делаю-а тут варганил на скорую руку на коленке))
0
Модератор
Эксперт MS Access
11962 / 4830 / 779
Регистрация: 07.08.2010
Сообщений: 14,144
Записей в блоге: 4
23.01.2018, 22:04 9
как вариант --для работы в русской/английской версиях
Вложения
Тип файла: zip date19m.zip (39.7 Кб, 10 просмотров)
1
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
23.01.2018, 23:49  [ТС] 10
Спасибо завтра посмотрю и отпишусь
0
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
25.01.2018, 11:07  [ТС] 11
Здравствуйте! Большое спасибо и Eugene-LS и shanemac51 выши решения для субформы подходят, вопрос есть следующий:
можно ли ввести эти параметры в запрос, т.к. на основе промежуточной субформы, для которой сейчас идет фильтрация не будет,пришлосмь пересмотреть концепцию. Т.Е. вопрос во внесении тела запроса цепочки из логики проверки значения чекбокса и выборки по значению комбобокса внутри запроса. Насколько это реально?
Заранее благодарен за любую помощь.

Добавлено через 31 минуту
Это как я понимаю запрос на включенный чекбокс:
SQL
1
2
3
4
SELECT DATA.DATA, DATA.NAME, DATA.COLOR
FROM DATA
WHERE FORMS!F1!CheckDAY
GROUP BY DATA.DATA, DATA.NAME, DATA.COLOR;
a вот это почемуто не работает
SQL
1
2
3
4
SELECT DATA.DATA, DATA.NAME, DATA.COLOR
FROM DATA
WHERE IFF(FORMS!F1!CheckDAY=TRUE,DATA.DATA=DateFromForm_DAY(),)
GROUP BY DATA.DATA, DATA.NAME, DATA.COLOR;
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.01.2018, 11:30 12
Второе условие в IIF пропущено. Например пусть будут все записи при False в чекбоксе
SQL
1
WHERE IFF(FORMS!F1!CheckDAY, DATA.DATA=DateFromForm_DAY(), TRUE)
1
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
25.01.2018, 11:38  [ТС] 13
Все
Цитата Сообщение от mobile Посмотреть сообщение
Выделить код
1
WHERE IFF(FORMS!F1!CheckDAY, DATA.DATA=DateFromForm_DAY(), TRUE)
Здравствуйте mobile!
Все равно віскакивает ошибка
Миниатюры
Использование нескольких checkbox в запросе  
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.01.2018, 11:41 14
Лучший ответ Сообщение было отмечено el_virun как решение

Решение

О-о-о! Пропустил такую описку!!! Конечно не IFF, а IIF
SQL
1
WHERE IIF(FORMS!F1!CheckDAY, DATA.DATA=DateFromForm_DAY(), TRUE)
1
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
25.01.2018, 11:42  [ТС] 15
Спасибо....а я тоже невнимательный))) вот что значит над кусочком кода 3 дня сидет-уже все небо в попугайчиках))))
0
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
25.01.2018, 12:12  [ТС] 16
пробую разбираться дальше...следующий трабл у меня -это ошибка передачи данных в цепочке "месяц":

комбобокс------переменная-------запрос

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
Public Function DateFromForm_MON() As Date
    On Error Resume Next
    Dim AA As String
    AA = Forms![F1]![Combo4]
    MsgBox AA
    Select Case AA
    Case "January"
        DateFromForm_MON = Month(DateValue("1,1,2018"))
        'MsgBox DateFromForm_MON
    Case "February"
        DateFromForm_MON = Month(DateValue("2,1,2018"))
        'MsgBox DateFromForm_MON
    Case "March"
        DateFromForm_MON= Month(DateValue("3,1,2018"))
        'MsgBox DateFromForm_MON
    Case "April"
        DateFromForm_MON = Month(DateValue("4,1,2018"))
       ' MsgBox DateFromForm_MON
    Case "May"
        DateFromForm_MON = Month(DateValue("5,1,2018"))
        MsgBox DateFromForm_MON
    Case "June"
      DateFromForm_MON = Month(DateValue("6,1,2018"))
        'MsgBox DateFromForm_MON
    Case "July"
        DateFromForm_MON = Month(DateValue("7,1,2018"))
       ' MsgBox DateFromForm_MON
    Case "August"
        DateFromForm_MON= MONTH(DateValue("8,1,2018"))
        'MsgBox DateFromForm_MON
    Case "September"
        DateFromForm_MON = Month(DateValue("9,1,2018"))
        'MsgBox DateFromForm_MON
    Case "October"
        DateFromForm_MON = Month(DateValue("10,1,2018"))
        'MsgBox DateFromForm_MON
    Case "November"
        DateFromForm_MON = Month(DateValue("11,1,2018"))
        'MsgBox DateFromForm_MON
    Case "December"
        DateFromForm_MON = Month(DateValue("12,1,2018"))
        'MsgBox DateFromForm_MON
    Case Else
        'MsgBox "4to to ne to"
End Select
End Function
и запрос "querty1"

SQL
1
2
3
4
SELECT DATA.DATA, DATA.NAME, DATA.COLOR
FROM DATA
WHERE IIF(FORMS!F1!CheckDAY, DATA.DATA=DateFromForm_DAY(), IIF(FORMS!F1!CheckMONTH, MONTH(DATA.DATA)=DateFromForm_MON(),TRUE))
GROUP BY DATA.DATA, DATA.NAME, DATA.COLOR;
если будет возможность помогите пожалуйста разобраться что я не так делаю
Вложения
Тип файла: 7z Database19_v03.7z (28.0 Кб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 70
25.01.2018, 15:36  [ТС] 17
разобрался починил спасибо всем неравнодушным огромное!!!
0
25.01.2018, 15:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2018, 15:36
Помогаю со студенческими работами здесь

Проверка нескольких checkbox
Есть несколько чекбоков и столько же текстбоксов. Как связать каждый чекбокс с каждым текстбоком я...

Запись данных из нескольких checkbox в БД
Есть форма в которой находится некое кол-во Checkbox : &lt;input type=&quot;checkbox&quot; class=&quot;sm&quot;...

Вывод значений нескольких CheckBox
Товарищи, прошу помочь: Есть UserForm в которой присутствует Frame c пятью CheckBox. Необходимо,...

Обработать выбор нескольких CheckBox
Здравствуйте! Такая проблема в Visual Basic 2015. Есть 6 CheckBox и одна кнопка Button. Каждый...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru