Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: 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 табла"
а при получении фокуса нашим полем КОД_МАтериала - опять обновлять с условием.

если этой формой набирается заказ - то лучше сделать отдельную форму для ввода Материала.
типа так
на поле с именем материала - событие даблклик
- открываем форму с материалами (и группами) - мадально
- на названии материала - даблклик (присавиваем глобальной переменной его КОД)
- закрываем форму
- полю КОД_Материал (ленточная) присваиваем Глобальную переменную)

и все будет хорошо, т.к. полесосписком для выбора из тысяч наименований - довольно не удобно.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.