|
|
|
| На форме 2 списка. Значения одного должны фильтроваться по значениям другого, находящиеся во 2 столбце. Пишу:
With Me.Список40.ItemData
.Filter = "КодПротОбл=" & Me.Список30.Column(1)
.FilterOn = True
.Requery
End With
Чего ему не так?
With Me.Список40.ItemData а также (ItemList, Column(0), и прочее) дает ошибку.
По примеру и справке пробовал через функцию In, но с ней что-то никак не сладить. Плиз ЧД? | |
|
| |
|
|
|
| Откуда у списка свойства Filter и FilterOn?
В запросе-источнике строк второго списка в условиях отбора должна быть ссылка на значение ( или значение Column(..)) первого списка. | |
|
| |
|
|
|
| Да вот как-то какие у них свойства.
Дело в том, что база из 2 форм состоит. На одной только формы - это все работает. На другой то же самое, только списками для просмотра. Вот тут-то и затык. Пытался по вашему примеру нечто соорудить. Там похоже функция In используется. Но с ней пока это...таво.
По справке пока тоже мало чего.
Похоже не в ту сторону копаю. | |
|
| |
|
|
|
| А если источник строк списка2 - запрос, а у запроса условие значение списка1.... получится список2 отфильтрован согласно значению списка1.
================================================
А чё ты никада кусок базы не кладёшь с таблой, с формой фсё на пальцах | |
|
| |
|
36 Кб. |
|
| Час. Я этот кусок уже 3 раза выкладывал. По значению списка1 работает форма как по пристегнутому 1-у столбцу. А вот рядом списку требуется 2-й столбец из этого же первого списка. Вот и мудрю с запросами, условиями, фильтрами. В формах все проще и понятнее, но кучу форм на одно и то же - не солидно блин.
Кусочек базы. http://slil.ru/27891310 вся наработка. Если не лень и есть время. Там откроется форма. Вся пустая кроме одного списка. Вот его-то и надо фильтровать согласно списка слева.
Может форму поставить и черт с ним мутыриться?
В залил что-то глючит. Вот кусок. Список что показывает - не должен показывать до появления инфы в списке слева. А с появлением таковой должен показать только то, что там введено. | |
|
| |
|
|
|
| В запросе-источнике строк второго списка в условиях отбора должна быть ссылка на значение ( или значение Column(..)) первого списка.
Запрос источник строк есть. В первом списке пристегнут Column(0) и активно используется формой. А другой список должен сослаться на Column(1). В запросе на источник строк так не поставить. Пробовал запрос загружать при открытии формы. Ошибок нет. Пробовал в условии отбора указать Column(1) - ругается. Пробовал отфильтровать - результат известен. Куда копать? | |
|
| |
|
41 Кб. |
|
| Посмотрите...
Несколько советов:
1. У вас в заголовках модулей отсутствует Option Explicit, а это значит, что в настройках VBA не указано обязательное объявление переменных. Настоятельно рекомендую установить этот флажок, а в заголовке существующих модулей укажите Option Explicit.
2. Добавлять запись лучше не запросом INSERT INTO...VALUES..., а открыть Recordset и добавить туда. Меньше мороки и значение счетчика можно получить сразу после AddNew.
3. Третий аргумент DoCmd.OpenForm - условие отбора, а не имя сохраненного фильтра (это по другому вашему вопросу). После выполнения п.2 можно указать критерий при открытии формы. Также DoCmd.OpenForm умеет открывать форму на добавление записей и можно нового пациента вносить прямо в эту форму.
4. В источниках строк списков на форме допускается синтаксис =Form![Поле] или просто =[Поле].
5. Созданный вами код впечатляет! Не пожалейте времени на чтение умных книжек.
ЗЫ. А вы не перемудрили с фильтром по инициалам? | |
|
| |
|
|
31 Кб. |
|
| может так??? | |
|
| |
|
|
|
| Час, спасибо, но немного не то. Надо что бы по мере ввода отсев шел по всем критериям. Если список опустеет, то запрос на добавление сработает. Если не опустеет, значит клиент был ранее введен. 2 хлопком по нему открываем форму. Такой вот замысел. Там все автоматически должно быть.
Вопрос был по поводу списка справа. Там где цифры стоят. Анатолий идею подкинул. | |
|
| |
|
|
|
|
| А не проще, для пользователя, использовать ввод с клавы --> фильтр Like "Ив*" (обработка Клавиша вниз и Нажатие клавиши), а не поле со списком. Ведь по идее тысячи пациентов список не совсем удобен | |
|
| |
|
|
|
| А если хочешь фильтр по Вамилия, Имя, Отчество то проще сделать форму где вводится Начало каждого параметра и выдает отфильтрованное, и чел выбирает нужное. | |
|
| |
|
|
|
| Кот, спасибо. Но тут идея в том, чтобы списки освоить. Раньше только на формах работал.Like штука известная, но введя фамилию уже отсев хороший. Вкупе с инициалами - практически неповторимо. Уже один и будет. Кроме того данное поле со списком будет открываться и по мере ввода символов сокращаться.
Кароче, все что я тут делаю - просто поиск некоего оптимального варианта. Как бы размышление с обучением. | |
|
| |
|
|
|
| Я ПолесоСписком вообще на формах прячу от Пользователя. Создаю Поле_1=ПолесоСписком.Column(1) и к нему пишу обработку, которая и заполняет само ПолеСоСписком. Мне кажется ПолеСоСписком для пользователя неудобно в восприятии, тем более что Пользователи как правило далеки от компов, очень. | |
|
| |
|
|
|
| Тоже мысля. Сенька за идею.
Но поиск нечто чего-то продолжается. | |
|
| |