|
14 Кб. |
|
| Все привет.
Вот недавно столкнулся с такой проблемой изготавливая примерчик. 2 фильтра в одном. Лукас подсказал как сделать, но не работает Расписал по очереди
как результат работате только один, хотя другой не показывает ошибки.
Запустил фильтр по условию
with me.form
Filter = Format(DMax("Дата", "Таблица1"), SQL_DATE_FORMAT)
FilterOn = True
End With
Все работает
Фильтр по другому условию
with me. form
Filter = "Материал='" & Me.Материал & "'"
FilterOn = True
End With
Работает без замечаний
А теперь одновременно что бы оба фильтра сработали - ни хрена не работает. Расписывал по переменным
strFiltr = "Материал='" & Me.Материал & "'"
strFiltr1 = "Дата=" & Format(DMax("Дата", "Таблица1"), SQL_DATE_FORMAT)
Filter = strFiltr and ... (&) strFiltr1 ...& "Дата=" & Format(DMax("Дата", "Таблица1"), SQL_DATE_FORMAT)...+
FilterOn = True
Да как только ни изгалялся и извращался со знаками +& and все бестолку. Иногда работает но выбирает только один материал иногда выдает сообщение что не хватает данных, иногда пропущен элемент в (и показывает дату), ну и так далее...
А должен показать все материалы с макс датой в каждом! Блин. Сдается что тут надо источник менять на запрос и в нем фильтровать | |
|
| |
|
|
|
| Гоблин - я уже вам один раз говорил
в фильтре должно стоять условие такое же как в запросе после слова Where
в VBA его немножко под себя подгоняешь
соответственно сделайте запрос и посмотрите что должно получиться
вполне возможно что "[дата]=#" & Format(DMax("Дата", "Таблица1"), SQL_DATE_FORMAT) & "#" | |
|
| |
|
|
|
| а где оператор OR или AND между условиями фильтра
Filter= strFiltr & " and " & strFiltr1
|
т.к. Filter= strFiltr and strFiltr1 - даст результат 0. | |
|
| |
|
17 Кб. |
|
| Правильно сделал или нет | |
|
| |
|
|
|
| Найди отличия в том как я тебе написал, и как ты переделал:
Const SQL_DATE_FORMAT As String="\#mm\/dd\/yy\#"
Dim MaxDate As Date
Dim strFiltr As String
...
MaxDate=DMax("Дата","Таблица")
'Debug.Print MaxDate
strFiltr="Материал='" & Me!Материал & "'"
'Debug.Print strFiltr
strFiltr=strFiltr & " AND [Дата]=" & Format$(MaxDate, SQL_DATE_FORMAT)
'Debug.Print strFiltr
...
|
+ Я всегда использую другое значение константы, с годом из 4 цифр:
Const SQL_DATE_FORMAT As String="\#mm\/dd\/yyyy\#"
| |
|
| |
|
|
|
| Да. Всем спасибо за отзыв. Проблема в том, что в конец запутался с этими &" и &' где и когда их заразы совать. В ваших примерах все понятно. Как один на один - начинается бардак.
Но во всех случаях работает как у кота. Отфильтровывает выбранный материал со свеми датами на него и + одну максимальную дату со всей таблицы.
А моя цель была сделать такой фильтр, что бы выбирал всего по максимальной дате.
дерево 12.12.2009
стекло 12.12.2009
железо 10.12.2009
пластик 13.12.2009
Это как групповой запрос с группировкой по материалу и max по дате. Выходит из фильтров не выжать возможность группового запроса.
Еще раз всем спасибо. | |
|
| |
|
|
|
| Ну как ход - изменить RecordSource | |
|
| |
|
|
|
| Вот и я про то же. А хотелось что бы фильтром перевернуться.
Хотя зачем такое изуверство сам не знаю. | |
|
| |
|
14 Кб. |
|
| Вот чего хотел получить из фильтров. Лаболатория Гоблина. | |
|
| |