|
фильр флажками
|
|||
---|---|---|---|
#18+
Форумчане, сделал общий фильтр к которому подвязал все списки и флажки, но появилась проблема со флажками Private Sub FilterForm() Dim strFilter As String strFilter = "True" If Form.Recordset.EOF Then Me.FilterOn = False Form.Dirty = False If Me.Napr_no = True Then strFilter = strFilter & " and [kVili25kV] Like ""НЕТ""" If Me.Napr_yes = True Then strFilter = strFilter & " and [kVili25kV] Like ""ДА""" If Me.Napr_case = True Then strFilter = strFilter & " and [kVili25kV] Like ""null""" If Me.Napr_all = True Then strFilter = strFilter & "" Me.Filter = strFilter Me.FilterOn = True End Sub Выдает ошибку и не хочет фильтровать. Получается мне нужно 4 позиции: ДА,НЕТ,пусто,все ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:26 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
1. Like без * это =. 2. Как поле может быть одновременно ("НЕТ" И "ДА" И "null")? Может, ИЛИ? 3. А "null" - это так в поле и прописано, как текст? 4. Да и по поводу "НЕТ" и "ДА".... Что-то странное... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:35 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Поле kVili25kV - это логическое (Boolean) поле таблицы Access? В этом случае оно не может быть Null. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:38 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, по сути да, да и нет, не смогут быть одновременно это ясно, в этом случае если будут выбраны два флажка то записей не будет. Я разделил флажки для другой цели, чтобы иметь возможность выбирать нет и пусто, или да и пусто, но т.к. это было бы большим нагромождением условий, то сделал 4 флажка, так будет удобней, поверьте) null, это незаполненное поле. И поле kVili25kV, не логическое, т.е. не Boolean ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:43 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisan, чтобы иметь возможность выбирать нет и пусто, или да и пустоНо это все равно ИЛИ (OR), но не И (AND). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:46 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, это будет значение И, но получается у меня так, что есть общий фильтр и он вызывается для каждого элемента формы. strFilter это общий фильтр, вызываемый для всех элементов ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:48 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisanэто будет значение ИОх.... Еще и значение.... Даже не логическая операция... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 16:58 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, Логическая операция. В любом случае вопрос был в синтаксисе кода)) почему не получается применить переменную общего фильтра и условие для него) для флажка ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 19:00 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisannull, это незаполненное поле. И поле kVili25kV, не логическое, т.е. не BooleanВ таком случае условие должно быть таким Код: vbnet 1.
RetvisanЯ разделил флажки для другой цели, чтобы иметь возможность выбирать нет и пусто, или да и пустоВ таком случае условия должны быть такими Код: vbnet 1.
, где "<значение>" либо "ДА", либо "НЕТ" (неужели, действительно, так и записано в таблице???). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 19:21 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, https://yadi.sk/d/f4jhDwdAqYWdz , вот база, там сделал все флажки, вроде как. посмотрите, если хотите) быть может я вас заблуждение ввожу) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 20:11 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisan, Ой, нет, у меня accdb не откроется.((( Максимум в 2003-м могу посмотреть, если переделаете в формат 2003-го. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 20:15 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, задумка другая, как прописать условие и переменную общего фильтра одновременно? и все не надо делать никаких двойных условий.Если делать двойные условия, то у меня будет переключателей больше, раз,два я не смогу фиьтровать данные вместе со списками, которые я уже добавил в общий фильтр ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 21:35 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisan, Ага, скачала. Посмотрю попозже, бегло взглянула - удивилась.))) Попробую распутать Ваши критерии, прямо в базе. Выложу результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 21:37 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__MichelleRetvisan, Ага, скачала. Посмотрю попозже, бегло взглянула - удивилась.))) Попробую распутать Ваши критерии, прямо в базе. Выложу результат.*-* ** ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 21:51 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, спасибо, если что, тот кусочек кода, который я выложил сюда в тему, не вставлен, ибо если я его заменяю в общем фильтре, то потом редактор уже не открывается))) не знаю почему, просто экссесс зависает) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 22:05 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
В общем, так. У меня тоже на Вашей базе при попытке сохранить или перейти из режима конструктора в режим формы вываливается Access. Но все же удалось часть кода изменить и проверить работу. Все получается. Изменения покажу здесь, так как базу пересохранить не удается. Вместо этого фрагмента Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
сделала этот Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
На мой взгляд, эти критерии теперь работают. Проверьте, пожалуйста, у себя. По критерию для напряжения мне пока не ясно, чем отличается "Не важно" от "Все". Когда объясните, попробую и этот критерий сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2016, 23:03 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, это да, у меня и до этого в принципе работали списки(в плане фильтрации у меня не было к ним нареканий, выдавали данные, что нужны), у меня самой большой трабл с флажками, у меня не получается задать для флажков strFilter, как я пытался это сделать приведено выше, в самом начале темы) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 08:50 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, Вот какой код теперь, ваш код для списков работает) я попытялся переделать для флажков, но косяк сохраняется, выдает ошибку Private Sub FilterForm() Dim strFilter As String strFilter = "True" If Form.Recordset.EOF Then Me.FilterOn = False Form.Dirty = False Me.Filter = strFilter If Not IsNull(LVybor) Then strFilter = strFilter & " AND [L]=""" & LVybor & """" If Not IsNull(NVybor) Then strFilter = strFilter & " AND [N]=""" & NVybor & """" If Not IsNull(IS510Vybor) Then strFilter = strFilter & " AND [IS510]=""" & IS510Vybor & """" If Not IsNull(IS520Vybor) Then strFilter = strFilter & " AND [IS520]=""" & IS520Vybor & """" If Not IsNull(IS530Vybor) Then strFilter = strFilter & " AND [IS530]=""" & IS530Vybor & """" If Not IsNull(R1Vybor) Then strFilter = strFilter & " AND [R1]=""" & R1Vybor & """" If Not IsNull(R2Vybor) Then strFilter = strFilter & " AND [R2]=""" & R2Vybor & """" If Not IsNull(R3Vybor) Then strFilter = strFilter & " AND [R3]=""" & R3Vybor & """" If Not IsNull(R4Vybor) Then strFilter = strFilter & " AND [R4]=""" & R4Vybor & """" If Not IsNull(R5Vybor) Then strFilter = strFilter & " AND [R5]=""" & R5Vybor & """" If Not IsNull(VneplanVybor) Then strFilter = strFilter & " AND [vneplan]=""" & VneplanVybor & """" If (Me!Napr_no) = True Then strFilter = strFilter & " kVili25kV=ÍÅÒ" If (Me!Napr_yes) = True Then strFilter = strFilter & " kVili25kV=ÍÅÒ" If (Me!Napr_case) = True Then strFilter = strFilter & " kVili25kV is null" If (Me!Napr_all) = True Then strFilter = strFilter & "" Me.Filter = strFilter Me.FilterOn = True End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:11 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisan, у вас может быть 2 варианта выборки условие1 и(and) условие2 условие1 или(or) условие 2 и только вы знаете, какой тип сочетания вы хотите получить L AND 380 (L OR N) AND 380 (L OR N OR 310) AND (только что-то) (L OR N OR 310) AND (кроме что-то) .... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:13 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisan, вам я на другом форуме выложила пример на сочетание типа (L=DA OR N=DA) AND (FLAG11=DA) AND (FLAG21=DA) что там не так ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:16 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА,и снова здравствуйте) место встречи изменить нельзя) причина в том, что там использованы групповые переключатели, в которых я могу выбрать только одно условие. Мучаться с сочетаниями это тупик, я буду добавлять еще один блок флажков. И перебирать все варианты просто невозможно. поэтому нужны флажки, с общим фильтром, который вызвается для них. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:20 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
Retvisanу меня и до этого в принципе работали списки(в плане фильтрации у меня не было к ним нареканий, выдавали данные, что нужны)Этого быть просто не может! Внимательно посмотрите на свой код и на мой. Неужели не видите принципиальную разницу? Вы вместо проверки значения критерия проверяете текущее значение из ленточной формы и на основании этого "фильтруете", причем зачем-то с бессмысленным LIKE. Не дает Ваш код нужного результата, сказки. Вы даже не попробовали применить мой?Retvisanу меня самой большой трабл с флажками, у меня не получается задать для флажков strFilter, как я пытался это сделать приведено выше, в самом начале темы)Ваши варианты из начала темы мне не очень нужны. Они, простите, дикие. Мне нужен был ответ на вопрос, чем отличается "Не важно" от "Все". Вы вопрос проигнорировали. Ну, ладно, сама догадаюсь. Вот Вам вариант для Напряжения. Вместо этого фрагмента Код: vbnet 1. 2. 3. 4. 5.
вставьте этот Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Объявление переменной s перенесите в начало процедуры. ВАЖНО: Предварительно флажкам Napr_no, Napr_yes, Napr_case, Napr_all присвойте в конструкторе начальное значение (значение по умолчанию). Всем, кроме Napr_all - False, а Napr_all - True. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:38 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, простите, я применил ваш код, я же написал...спасибо огромное за помощь. все от неважно отличается тем, что есть пустые пустые занчения в столбцах, эти пустые значения и будут неважно, все ну это все и пустые и да и нет. Еще раз спасибо, уже почти неделю мучаюсь с этими фильтрами) щас попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:40 |
|
фильр флажками
|
|||
---|---|---|---|
#18+
__Michelle, Private Sub FilterForm() Dim strFilter As String Dim s As String strFilter = "True" If Form.Recordset.EOF Then Me.FilterOn = False Form.Dirty = False If Not IsNull(LVybor) Then strFilter = strFilter & " AND [L]=""" & LVybor & """" If Not IsNull(NVybor) Then strFilter = strFilter & " AND [N]=""" & NVybor & """" If Not IsNull(IS510Vybor) Then strFilter = strFilter & " AND [IS510]=""" & IS510Vybor & """" If Not IsNull(IS520Vybor) Then strFilter = strFilter & " AND [IS520]=""" & IS520Vybor & """" If Not IsNull(IS530Vybor) Then strFilter = strFilter & " AND [IS530]=""" & IS530Vybor & """" If Not IsNull(R1Vybor) Then strFilter = strFilter & " AND [R1]=""" & R1Vybor & """" If Not IsNull(R2Vybor) Then strFilter = strFilter & " AND [R2]=""" & R2Vybor & """" If Not IsNull(R3Vybor) Then strFilter = strFilter & " AND [R3]=""" & R3Vybor & """" If Not IsNull(R4Vybor) Then strFilter = strFilter & " AND [R4]=""" & R4Vybor & """" If Not IsNull(R5Vybor) Then strFilter = strFilter & " AND [R5]=""" & R5Vybor & """" If Not IsNull(VneplanVybor) Then strFilter = strFilter & " AND [vneplan]=""" & VneplanVybor & """" If Not Napr_all And _ Not (Napr_no And Napr_yes And Napr_case) And _ Not (Not Napr_no And Not Napr_yes And Not Napr_case) Then s = " AND (False" If Napr_no Then s = s & " OR ([kVili25kV]=""ÍÅÒ"")" If Napr_yes Then s = s & " OR ([kVili25kV]=""ÄÀ"")" If Napr_case Then s = s & " OR ([kVili25kV] Is Null)" s = s & ")" End If strFilter = strFilter & s Me.FilterOn = True End Sub все равно выдает все ту же ошибку..( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2016, 09:43 |
|
|
start [/forum/topic.php?fid=45&msg=39202731&tid=1613756]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 331ms |
total: | 481ms |
0 / 0 |