Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос больше к kot_k_k (ведь топик был его) ни к Гоблин too
 
 автор: OlegZa   (23.03.2012 в 08:26)   личное сообщение
 
 

Просто рылся на форуме - и увидел, что в 10 году подобную тему уже kot_k_k поднимал, а вот решения (по крайней мере в том топике) - не увидел.
Вот здесь: http://hiprog.com/forum/read.php?id_forum=1&id_theme=7972&page=1
У меня:
Есть 2 формы ("заказ" и подчиненная - "подробности заказа" ("подробности" - ленточная)).
В подчиненной поля "код заказа", "код группы", "код материала", "количество".
"Код группы" и "код материала" сделал полями со списком.
Пока было просто - в списке "код материала" - полный список товара (по всем группам вообще) - всё нормально работало и отображало тоже всё). Как только сделал в поле "код материала" выборку по группе (группу выбираю сначала, а потом в "коде материала" - только из этой группы материалы) - посыпалось всё.
Т.е., пока работаешь с 1 записью - всё нормально - работает, отображает, выбираешь - сохраняет. Как доходит до 3-4 записи - в поле "код материала" начинает сыпаться изображение.
Значения знаю, что есть (в таблице никуда они не деваются), а вот изображения в поле - "код материала" пропадают. Пустышки в этом поле по более ранним записям идут.
По группе отбираю так: RecordSet-ом меняю RowSource поля со списком.
Подумал сначала, что это только у подчиненной формы такая фишка, переделал всё на Связанные формы - та же самая фигня.
Попробовал выборку не RecordSet-ом, а в условии запроса-источника на поле "Код группы" сослаться - сначала запутался совсем, потом, вроде подразобрался - в результате, вроде, получилось (криво, правда как-то) - но Баг-то остался. "Пустышки" как появлялись непонятно откуда - так и появляются.
Вопрос:
А у Вы kot_k_k как тогда эту проблему победили (обошли)?
А Гоблин - в том топике предлагали заменить формы - списками - это как??? Не пойму как (на что) форму поменять можно.

  Ответить  
 
 автор: kot_k_k   (23.03.2012 в 10:07)   личное сообщение
 
 

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

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

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

  Ответить  
 
 автор: kot_k_k   (23.03.2012 в 10:15)   личное сообщение
 
 

про тот топик - там был (как показали "высокого научные эксперименты") просто глюк конкретного Акса - все проходило путем удаления и создания поля - правда через время опять срывалось.

  Ответить  
 
 автор: OlegZa   (23.03.2012 в 10:52)   личное сообщение
37 Кб.
 
 

Вот не совсем так.
базу кастрировал как мог - сжал, зарарил - прилепил
Там 2 варианта. Первый - подчиненные формы (Заказ)
Второй - связанные (Заказ1)
Вот там мышкой побегайте по записям в поле "Вид материала" ("код материала" в Заказы1) - не знаю, как у Вас будет, а у меня - мультик получается. Куда перейдёшь - значение кажет, а откуда ушел - то кажет, то нет. Чаще совсем ничего не кажет.
А по поводу отдельной формы - никогда так не делал, но, как понял - попробую сгондобить чтой-то. Только мне кажется, что не в способе заполнения дело. Заполняется-то верно, а вот отображается....

  Ответить  
 
 автор: kot_k_k   (23.03.2012 в 11:22)   личное сообщение
 
 

я описал твой вариант на все 100% - ты меняешь источник во ВСЕХ записях поля КОД_МАТЕРИАЛА - поэтому и мультик.
используй форму для ввода - а это оставь для набора - тем более что не всем ползьвателям будет доступен набор и изменение, многи - только просмотр и поле сосписком можно скрыть а в место него показывать поле где написано =[Код_Мтариала].Column(1) , я так делаю и ниче нормуль.

  Ответить  
 
 автор: OlegZa   (23.03.2012 в 11:30)   личное сообщение
 
 

ОК буду пробовать!

  Ответить  
 
 автор: kot_k_k   (23.03.2012 в 11:34)   личное сообщение
 
 

Убери код_Группы из Заказ_Подробности - он ни о чем ни говорит - лишнее поле

да и на подчиненных формах при загрузке к тебя поле КОДМатериала - не имеет RowSource

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList