powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
21 сообщений из 21, страница 1 из 1
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489098
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в Access организовать сложный фильтр???
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489104
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сложный - это какой?
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489115
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сложный это значить на несколько полей сразу.
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489116
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно хотя бы на примерах объяснить?
Что есть и что надо получить?

А то на ваш вопрос напрашивается ответ:
Сложный фильтр в Access можно организовать средствами Access (куча полезной информации - не правда ли?)
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489121
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В запросе?
В форме?
При просмотре таблицы?

Что вы от форума хотите?
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489129
Фотография msn13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If FiL = "" Then
FiL = "[" & "поле1" & "] =Значение1"
Else
FiL = FiL & " AND "[" & "поле1" & "] =Значение1"
End If

Me.Filter = FiL
Me.FilterOn = True
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489151
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно через запрос.
Если, например в списке выбираешь исходная документация, то выше в таблице должна появиться информация о документах с исходной документацией. Это все должно быть в форме. В верху таблица с данными, а ниже список по которому устанавливается фильтр. И таких списков несколько.
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489159
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть сложный фильтр
- формирует предложение where для формирования отчета
из отмеченных узлов тривю, несокольких полей и полей со списками

есть простенький из нескольких контролов в заголовке формы делает SQL запрос для подформы


если хочешь выложу сюда весь код формы (первый или второй) целиком, красиво форматировать / комментровать к сожалению сейчас нет времени
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489162
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При изменении критериев фильра - вызывашь процедуру, которая меняет фильтр

Примерно, как msn13 написал

Sub Change_Filter()
Dim strF as string
strF = ""

if Len(strF) > 0 Then strF = strF & " AND "
strF = strF & " Поле1 = " & [Список1]

...

me.filter = strF
me.filterOn = true
End Sub
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489201
Ольчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК, если можешь, то выложи и первый и второй целиком, пожалуйста!
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489346
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот первый

тебе собственно нужна процедура setfilters_Click()
в отчете к имеющемуся where добавляется то что собрано



Код: plaintext
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.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
Option Compare Database
Option Explicit
Public stroka As String
Public stroka1
Public twFilter
Public twFiltercur
Public twFindepList
Public twCuratorList
Dim WithEvents TV As TreeView

Private Sub Form_Load()
Echo False
DoCmd.Maximize
Set TV = Me.Treeview1.Object
Dim nodx As Node
Dim RS As New ADODB.Recordset
    Treeview1.Nodes.Clear
    Set nodx = Treeview1.Nodes.Add(, , ,  "Вся Компания" ,  1 )

RS.Open  "SELECT    ... " , CurrentProject.Connection, adOpenKeyset, adLockReadOnly

Do Until RS.EOF
    Set nodx = Treeview1.Nodes.Add (1 , tvwChild,  "id_fg"  & RS( "findepid" ), RS( "findepname" ),  2 )

     nodx.EnsureVisible
 RS.MoveNext
Loop

RS.Close
RS.Open  "dbo.all_curators_by_findep" , CurrentProject.Connection, adOpenKeyset, adLockReadOnly

Do Until RS.EOF
 If IsNull(RS( "findepid" )) Then
    Set nodx = Treeview1.Nodes.Add (1 , tvwChild,  "id_cunodep"  & RS( "curator" ), RS( "fio" ))
 Else
    Set nodx = Treeview1.Nodes.Add( "id_fg"  & RS( "findepid" ), tvwChild,  "id_cu"  & RS( "curator" ), RS( "fio" ))
 End If
     nodx.EnsureVisible

RS.MoveNext
Loop

Treeview1.Nodes (1 ).Selected = True
RS.Close
Set RS = Nothing
Echo True
End Sub



Private Sub setfilters_Click()
'Фильтр '
stroka =  " and " 
'Заголовок отчета - Фильтр '
stroka1 =  ""

If twFindepList <> "  " Then

    stroka = stroka & "     dbo.get_sotr_findepid_absolute(pr.curator, pr.OpenDate) in ( " & twFindepList & " ) and  "
    stroka1 = stroka1 + twFilter
End If

If twCuratorList <> "  " Then
stroka = stroka & "     pr.curator in ( " & twCuratorList & " ) and  "
stroka1 = stroka1 + twFiltercur

End If



If Not IsNull(Me.fopendatafrom) Then stroka = stroka + " OpenDate >=  " & sqldata(Me.fopendatafrom) & "  AND  "
If Not IsNull(Me.fopendatafrom) Then stroka1 = stroka1 + " открытые после  " & Me.fopendatafrom & " ;  "

If Not IsNull(Me.fopendatato) Then stroka = stroka + " OpenDate <=  " & sqldata(Me.fopendatato) & "  AND  "
If Not IsNull(Me.fopendatato) Then stroka1 = stroka1 + " открытые до  " & (Me.fopendatato) & " ;  "

If Me.onlyopen Then
stroka = stroka + " [Close4 Date] IS NULL AND  "
stroka1 = stroka1 + "  открытые;  "

Else
    If Not IsNull(Me.fclosedatafrom) Then stroka = stroka + " [Close4 Date] >=  " & sqldata(Me.fclosedatafrom) & "  AND  "
    If Not IsNull(Me.fclosedatafrom) Then stroka1 = stroka1 + " закрытые после  " & (Me.fclosedatafrom) & " ;  "

    If Not IsNull(Me.fclosedatato) Then stroka = stroka + " [Close4 Date] <=  " & sqldata(Me.fclosedatato) & "  AND  "
    If Not IsNull(Me.fclosedatato) Then stroka1 = stroka1 + " закрытые до  " & (Me.fclosedatato) & " ;  "

End If

If Me.farchive = 2  Then stroka = stroka + "archive <>  0   AND  "
If Me.farchive = 2  Then stroka1 = stroka1 + "Архивные  "

If Me.farchive = 3  Then stroka = stroka + "archive =  0  AND  "
If Me.farchive = 3  Then stroka1 = stroka1 + "неархивные  "

If Me.sovmest Then stroka = stroka + " [countfil] >  1  AND  "
If Me.sovmest Then stroka1 = stroka1 + "  Только совместные  "



If Len(stroka) > 5  Then
stroka = Mid(stroka,  1 , Len(stroka) -  5 )
Me.pfilter = stroka & "  " & stroka1
Else
stroka = "  "
stroka1 = " Все  "
Me.pfilter = stroka & "   " & stroka1
End If
SQLReportFilterName = stroka1
SQLReportFilter = stroka

End Sub
Private Sub Open_filtred(Rptname As String)

DoCmd.OpenReport Rptname, acPreview
Reports(Rptname).FilterOn = False

End Sub



Private Sub TV_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim N As MSComctlLib.Node
twFilter = "  "
twFiltercur = "  "
twFindepList = "  "
twCuratorList = "  "

If Node.Index = 1  Then
    For Each N In Me.Treeview1.Nodes
        N.Checked = False
    Next N
    TV.Nodes (1 ).Checked = True
Else
    TV.Nodes (1 ).Checked = False

    For Each N In Me.Treeview1.Nodes
        If N.Index =  1  Then GoTo m1
        If N.Parent.Index = Node.Index Or Node.Parent.Index = N.Index Then N.Checked = False
m1:
    Next N
End If


For Each N In Me.Treeview1.Nodes
If N.Checked Then

If InStr (1 , N.Key, "id_fg ", vbTextCompare) Then twFindepList = twFindepList & Mid(N.Key, 6 ,  5 ) & ", ": twFilter = twFilter + "   " + N.Text + " ;  "
If InStr(1 , N.Key, "id_cu ", vbTextCompare) Then twCuratorList = twCuratorList & Mid(N.Key, 6 ,  5 ) & ", ": twFiltercur = twFiltercur + "   " + N.Text + " ;  "

End If
Next N
If Len(twFindepList) > 1  Then twFindepList = Left(twFindepList, Len(twFindepList) -  1 )
If Len(twCuratorList) >  1  Then twCuratorList = Left(twCuratorList, Len(twCuratorList) -  1 )

Debug.Print twFilter
End Sub

Private Sub TV_NodeClick(ByVal Node As MSComctlLib.Node)
Node.Checked = Not Node.Checked
Call TV_NodeCheck(Node)
End Sub

Private Sub Отрытие_Отчета_Click()
On Error Resume Next
Call setfilters_Click

'если хочется в последний момент еще чего - нибудь'
If Me.custom_where Then
    SQLReportFilterName = InputBox("Название фильтра ", , SQLReportFilterName)
    SQLReportFilter = InputBox(" SQL ADD  ", , SQLReportFilter)
     
End If

Call Open_filtred(" форма6-1_dynamical")
End Sub
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489362
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот второй вариант.
если хочешь могу этот вариант отдать ввиде MDB






Код: plaintext
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.
Public Sub Refresh_filter()
Dim sel As String
Dim rs As String
Dim where As String
Dim where1 As String

Dim order As String


Me.fresort.Requery
If IsNull(Me.fresort.ItemData (1 )) Then Me.fresort =  0 


sel =  " select * " 
rs =  " from search_all_oi_price_period where  1  =  1  "
If Me.fresort <>  0  Then where =  " and id_resort = "  & Me.fresort
If Me.fresort <>  0  Then where1 =  " and id_resort = "  & Me.fresort
If Me.fcountry <>  0  Then where1 =  " and id_country = "  & Me.fcountry

If Not IsNull(Me.fhotel) Then where1 = where1 &  " and idhotel = "  & Me.fhotel
If Not IsNull(Me.fnights) Then where1 = where1 &  " and nights = "  & Me.fnights
If Not IsNull(Me.fnumber_type) Then where1 = where1 &  " and idNumberType = "  & Me.fnumber_type


Me.p1.Form.RecordSource = sel & rs & where1
Me.fhotel.RowSource =  "SELECT distinct search_all_oi_price_period.idHotel, search_all_oi_price_period.hotel_name, Resort_Name "  & rs & where
End Sub
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489724
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК, если можешь, то отдай.
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32489921
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
качай (800 кб)

http://kozin1.narod.ru/down_files/tour.rar

надо создать папку и туда разархивировать все файлы
подробности во вложенном readme
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490099
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК, большое тебе спасибо!!!!!
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490181
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пожалуста.

скачала ? понравилось? то что нужно?
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490302
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скачала! Да, вроде похожа на ту что нужно.
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490327
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК ,\r
С Танюшей разобрались, не подскажешь, как мне быть с Машей, Дашей, Любой?
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490341
Танюша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь я не помошник!!!
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490373
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Varan
Теж ответили - причем и в Access и в MSSQL
...
Рейтинг: 0 / 0
Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
    #32490380
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теж ответили - причем и в Access и в MSSQL

дык вижу ...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Прошу немного помощи!!!! (Как в Access организовать сложный фильтр???)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]