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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Изменение источника данных подформы ДО ее открытия (A2003)
 
 автор: Vladshi   (23.09.2007 в 15:04)   личное сообщение
 
 

Проблема:
Есть форма subfrm1, которая используется как подчиненная в frm1 и frm2. Еще есть форма frm1, у которой в подчиненной форме программно меняется объект-источник subfrm1 или subfrm2. В качестве источника данных subfrm1 выступеет запрос с параметрами. Когда я открываю frm1 и меняю объект источник подфомы на subfrm1, то у меня вылязит "Ведите значение параметра...", которого в frm1 нет. Затем я программно меняю источник данных subfrm1 и все работает, причем вне зависимости от того что введет юзер. Но как, блин, избавиться от этого дурацкого сообщения.

Вопрос: Можно ли как-то отложить выполнение этого запроса. Вариант с открытием в конструкторе не подходит, т.к. база будет MDE.

  Ответить  
 
 автор: Анатолий (Киев)   (24.09.2007 в 10:43)   личное сообщение
 
 

Добавьте на frm1 скрытое поле с именем параметра.

  Ответить  
 
 автор: Leonid   (24.09.2007 в 15:39)   личное сообщение
 
 

Попробуйте устанавливать источник подчинённой формы во время её открытия. Может, конечно, я ошибаюсь, но насколько я понял, подчинённые формы открываются почему-то раньше основной.

  Ответить  
 
 автор: Анатолий (Киев)   (24.09.2007 в 16:22)   личное сообщение
 
 

В форме запрос отрабатывается до возникновения события Form_Open. Отложить никак не удастся.
Вижу 2 варианта:
1. Запрос субформы сделать без параметров, возвращающий 0 или 1 запись. По ее событию
Form_Open проверять Me.Parent.Name, и подставлять правильный запрос в Me.RecordSource;
2. Если запрос с параметром используется только в этой субформе, подставьте вместо параметра ссылку на поле в заголовке формы. В нужный момент подставляйте туда значение и выполняйте me.Requery.
ЗЫ. Раньше я посоветовал ерунду. Поспешил. :-)

  Ответить  
 
 автор: Leonid   (24.09.2007 в 17:47)   личное сообщение
 
 

А почему нельзя вообще не указывать запрос субформы? И действовать далее так, как Вы советовали?

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

>А почему нельзя вообще не указывать запрос субформы?
Ну так и попробуйте...
Поля формы связаны с полями запроса (ControlSource). Если запрос убрать, ссылки будут в никуда. Может это и не страшно, но я бы так не делал. Трудно что ли написать запрос с WHERE ID Is Null или SELECT TOP 1 ...

  Ответить  
 
 автор: Vladshi   (26.09.2007 в 16:10)   личное сообщение
 
 

Похоже, что запрос должен быть обязательно без параметров и менять его придется и в frm1 и в frm2. Или второй вариант, но он годиться только при одинаковом количестве параметров - сделать в frm1 и frm2 скрытое поле с одним именем, в которое кидать значение параметра. Пошел по первому пути.
Огромное спасибо всем откликнувшимся.

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