ник: kot_k_k
мне кажется, я понял что происходит -
1. становимся на стр. № 1 ленточной формы.
2. выбираем группу
3. присваиваем RowSource = "select * from табла where kod_=" & me.КОД_ГРУППЫ
4. - выбираем материал. - ОК
5. становимся на стр. № 2 ленточной формы.
6. выбираем группу
7. Значения КОД_МАТЕРИАЛА посыпаллись
- правильно???
или вар. 2
- выбрали материал
- перешли на следующую строку
- выбрали группу (другую) - выбрали материал
- вернулись на прежнюю строку - при попытке изменить материал - значения посыпались.
если так - то нужно на событие "Текущая запись" ставить обновление RowSource
RowSource = "select * from табла where kod_=" & me.КОД_ГРУППЫ
- не зависимо от того произошло ли изменение группы.
все по тому что при выборе другой группы RowSource меняется для ВСЕХ записей поля, и все остальные записи которые не удовлетворяют текущему значению равны NULL
можно другой вариант - после обновления КОД_Материал - сбрасывать условие для RowSource
т.е. RowSource = "select * from табла"
а при получении фокуса нашим полем КОД_МАтериала - опять обновлять с условием.
если этой формой набирается заказ - то лучше сделать отдельную форму для ввода Материала.
типа так
на поле с именем материала - событие даблклик
- открываем форму с материалами (и группами) - мадально
- на названии материала - даблклик (присавиваем глобальной переменной его КОД)
- закрываем форму
- полю КОД_Материал (ленточная) присваиваем Глобальную переменную)
и все будет хорошо, т.к. полесосписком для выбора из тысяч наименований - довольно не удобно.