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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Странно ведет себя табличная форма А2003
 
 автор: avdtmb   (09.06.2008 в 12:11)   личное сообщение
 
 

Уважаемые специалисты. Проблема в следующем:
Есть форма с подчиненной. Подчиненная форма табличная. Когда я открываю основную форму, то все работает отлично. Когда я эту же форму открываю из другой (DoCmd. OpenForm) подчиненная форма ведет себя странно, такое впечатление что после любого перемещения (мышкой, или с клавиатуры), а также после ввода данных фокус устанавливается на первую запись. Я с таким эффектом столкнулся первый раз. Может быть я что не понимаю. Открываю я ее DoCmd.OpenForm stDocName, , , stLinkCriteria, , acDialog.

  Ответить  
 
 автор: Анатолий (Киев)   (09.06.2008 в 12:40)   личное сообщение
 
 

Как связаны форма с субформой, участвует ли в связи вычисляемое поле?
Вам действительно нужен режим acDialog? Т.е. вызвавшая процедура должна дождаться закрытия формы?

  Ответить  
 
 автор: avdtmb   (09.06.2008 в 14:20)   личное сообщение
 
 

Суть такая:
Есть таблицы
1.Год
2.Месяц
3.Сотрудник

Год связан с месяцем по ключевому полю один ко многом (т.е. 1 году 12 месяцем)
Месяц с Сотрудником тоже 1 ко многом (т.е. 1 месяцу соответствует много сотрудников)

Основная форма работает на данных таблицы Год
На форме 1 список (list Box) для месяцев и 1 подчиненная форма (для сотрудников), с ним связанная.
Связана она со списком по специальному полю в которое вписывается значение невидимого (не выводимого) столбца списка (источник данных этого поля=lst.Column(1)). Таким образом получается эмуляция связи с подчиненным списком.
А сам список заполняется в соответствии со значением ключевого поля таблицы Год для каждой записи указанной таблицы.
И вот эта форма прекрасно работает если ее запускать в ручную из окна базы данных, а если я ее открываю из другой формы поведение подчиненной формы для сотрудников становится удивительно своеобразным.
Спасибо Вам большое за то, что откликнулись.

  Ответить  
 
 автор: Анатолий (Киев)   (09.06.2008 в 15:27)   личное сообщение
 
 

Как я и предполагал, виновато вычисляемое поле в связи. По какой-то приичине это поле перевычисляется, а это подталкивает субформу к перезапросу. Почему в одном случае работает нормально, а в другом нет - мне это неведомо.
Сделайте поле свободным и по Current формы и AfterUpdate списка присваивайте ему значение lst.Column(1).

  Ответить  
 
 автор: avdtmb   (09.06.2008 в 17:14)   личное сообщение
 
 

Большое спасибо. Ваш совет оказался очень полезен. Работает как надо. Но за время переписки я эту форму полностью переделал. Она стала "легче". Но все равно вы мне очень помогли и в следующий раз я на эти грабли наступать не буду. Еще раз большое спасибо. Очень юыло приятно пообщаться.
С уважением, Андрей (так меня зовут).

  Ответить  
 
 автор: avdtmb   (09.06.2008 в 14:31)   личное сообщение
 
 

Прошу прощения, я не сказал пр acDialog. Что с ним, что без него работает одинаково.

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