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

Не работает фильтр

15.04.2013, 05:11. Показов 2864. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый, форумчане!
На форме пытаюсь сделать простой фильтр. Использую поле со списком, данные в нем из запроса. Список отображает то, что нужно. Но при выборе значения из списка, ничего не происходит. В то время как по задумке, должны отображаться только те данные, которые подходят под выбранное значение из списка.
Вот код:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
Private Sub ФильтрКоличествоТомов_AfterUpdate()
Dim stLinkCriteria As String
stLinkCriteria = "[Количество томов]=" & "'" & Me![Поле23]
DoCmd.OpenForm "Where", stLinkCriteria
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2013, 05:11
Ответы с готовыми решениями:

Фильтр не работает
procedure TForm1.ComboBox2Change(Sender: TObject); var selected:String; begin...

Не работает фильтр
Пишу так: Table2->Filtered=false; Table2->Filter=("Familiya" +Edit1->Text); ...

Не работает фильтр
1. Я совсем не умею программировать. 2. По урокам из Ютуба я смог организовать привязку БД из...

Не работает фильтр not()
Вообщем такая ситуация. Нужно чтобы по клику на элемент с селектором ".new_acting" в консоль у нас...

14
Эксперт MS Access
7446 / 4580 / 302
Регистрация: 12.08.2011
Сообщений: 14,280
15.04.2013, 07:11 2
1)
Создание формы для поиска записи из таблицы
2)
Visual Basic
1
2
3
4
5
Private Sub ФильтрКоличествоТомов_AfterUpdate()
Dim stLinkCriteria As String
stLinkCriteria = "[Количество томов]=" & Me![Поле23]
DoCmd.OpenForm "Where", stLinkCriteria
End Sub
3) слово where лучше заменить, от греха.
4) Поле23-Поле99 некрасиво и лишено смысла, подумайте об именах. Можете это ассоциировать с сотрудник1 - сотрудник99. (после такого обращения как к вам окружающие отнесутся?)
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 07:23 3
Цитата Сообщение от Lafete Посмотреть сообщение
Visual Basic
1
2
3
4
5
Private Sub ФильтрКоличествоТомов_AfterUpdate()
Dim stLinkCriteria As String
stLinkCriteria = "[Количество томов]=" & "'" & Me![Поле23]
DoCmd.OpenForm "Where", stLinkCriteria
End Sub
Пока вижу только две ошибки: a) stLinkCriteria должно быть четвертым параметрм метода OpenForm; б) вот этот фрагмент
& "'" или лишней, или нужно добавить в конец строки точно такой же.
Чтобы разобраться полностью нужно знать:
1. Что такое [Поле23]?
2. Что такое ФильтрКоличествоТомов?
3. Имя открываемой формы - "Where"?
4. Покажите источник строк поля со списком (запрос) и укажите поле запроса, которое должно использоваться для фильтра.
5. чему равны свойства поля со списком: Присоединенный столбец, Число столбцов
6. Какой тип поля [Количество томов]?

Поэтому, чтобы не заставлять отвечающих использовать карты Таро для гадания, всегда выкладывайте фрагмент БД, относящийся к проблеме.
1
Эксперт MS Access
7446 / 4580 / 302
Регистрация: 12.08.2011
Сообщений: 14,280
15.04.2013, 07:38 4
Цитата Сообщение от minob Посмотреть сообщение
stLinkCriteria должно быть четвертым параметрм метода OpenForm
Вот, а я думаю: что мне глаза так режет, спасибо.
0
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 21
15.04.2013, 08:56  [ТС] 5
Спасибо за ответы.
Выкладываю базочку, что-то исправила, но пока все равноне работает.
Вложения
Тип файла: rar Арх.rar (949.3 Кб, 16 просмотров)
1
Эксперт MS Access
7446 / 4580 / 302
Регистрация: 12.08.2011
Сообщений: 14,280
15.04.2013, 09:09 6
Поля подстановки в таблицах недопустимы (с).
0
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 21
15.04.2013, 09:36  [ТС] 7
извините, недопонимаю, при чем здесь поля подстановки в таблицах?
0
3544 / 1118 / 94
Регистрация: 13.03.2011
Сообщений: 1,513
15.04.2013, 10:01 8
Цитата Сообщение от Lafete Посмотреть сообщение
Выкладываю базочку, что-то исправила, но пока все равноне работает.
1. Вы же запретили изменения в форме. В свойство формы "Разрешить изменения" нужно установить "Да"
2. Так как количество томов, что видно по таблице Дело, может быть пусто, то нужно предусмотреть и этот случай
Visual Basic
1
stLinkCriteria = "[Количество томов]" & IIf(IsNull(Me![Поле23]), " Is Null", "=" & Me![Поле23])
3. каждый раз для фильтрования переоткрывать текущую форму не нужно. Вместо
Visual Basic
1
DoCmd.OpenForm "Дела", , , stLinkCriteria
или так
Visual Basic
1
2
Me.Filter = stLinkCriteria
Me.FilterOn = True
или так
Visual Basic
1
Me.RecordSource = "SELECT * FROM Запрос0 WHERE " & stLinkCriteria
1
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 21
15.04.2013, 10:38  [ТС] 9
Урааа! работает!)) Спасибо!
Один ответ, порождает кучу вопросов)
Могли бы Вы объяснить "человеческим" строку:
"[Количество томов]" & IIf(IsNull(Me![Поле23]), " Is Null", "=" & Me![Поле23])
(хотелось бы правильно уяснить ее).
Если еще на некоторые поля сделать подобные фильтры, как это будет работать?
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
15.04.2013, 10:57 10
вроде мизерные таблички и картинку с формы удалила, а база не сжимается(даже импортом)
Вложения
Тип файла: zip arx15.zip (785.0 Кб, 13 просмотров)
1
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
15.04.2013, 11:00 11
вам более подходит вариант поиска по любому полю

https://www.cyberforum.ru/atta... 1366002511
1
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 21
22.04.2013, 11:59  [ТС] 12
Да, Вы правы)) и правда более подходящий вариант.
Сейчас села осваивать его. Подогнала под себя, все работает, код понятен.

Появилась еще проблема:
1) в базе использовала многозначные поля, как выяснилось, фильтры (а также некоторые запросы) не работают с ними. Что можно попробовать таком случае?
p.s. Пробовала [поле].Value дописывать - безрезультатно.
0
Модератор
Эксперт MS Access
12096 / 4956 / 791
Регистрация: 07.08.2010
Сообщений: 14,566
Записей в блоге: 4
22.04.2013, 12:05 13
в базе использовала многозначные поля, как выяснилось, фильтры (а также некоторые запросы) не работают с ними. Что можно попробовать таком случае?
подчиненную таблицу
осн таб
ид1.........

подчин
ид2,ид1,(ваше многозначные поле в столбик)

м связь 1:м
0
1 / 1 / 0
Регистрация: 28.01.2013
Сообщений: 21
22.04.2013, 12:34  [ТС] 14
Поняла. Такой способ не совсем подходит. Я предположила, что возможно есть какой-ниб обходной путь с помощью vba.
Благодарю за помощь, пороюсь в инете еще, может что и накопаю))
0
Эксперт MS Access
7446 / 4580 / 302
Регистрация: 12.08.2011
Сообщений: 14,280
23.04.2013, 01:57 15
Цитата Сообщение от Lafete Посмотреть сообщение
в базе использовала многозначные поля
Никогда не используйте многозначных полей!

топик в копилку
0
23.04.2013, 01:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2013, 01:57
Помогаю со студенческими работами здесь

Не работает фильтр
Добрый день. Необходимо сделать фильтр, который будет осуществлять поиск по двум столбцам таблицы....

не работает фильтр
делаю фильтр по двум полям: страна и пол. но ничего не выводит. в чем может быть ошибка...

Фильтр работает неправильно
Привет, всем! Столкнулся с такой проблемой, хочу вывести по фильтру Заводской номер но когда ввожу...

Не работает фильтр в таблице
Добры день. Помогите разобраться может, что не так делаю. Есть БД. Все работает исправно в форме,...


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

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