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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Субформа
 
 автор: Егор   (25.02.2008 в 15:34)   личное сообщение
 
 

на форме имеется две субформы.
Как из одной субформы(Current) установить Recordset другой?

  Ответить  
 
 автор: час   (25.02.2008 в 16:34)   личное сообщение
 
 

а на какое событие хотелось бы?

  Ответить  
 
 автор: Егор   (25.02.2008 в 16:40)   личное сообщение
27 Кб.
 
 

переход по записям (только не подчиненные поля)

  Ответить  
 
 автор: osmor   (26.02.2008 в 09:01)   личное сообщение
 
 

вопрос не совсем понятет. ПОдробнее плиз.

  Ответить  
 
 автор: Егор   (26.02.2008 в 10:26)   личное сообщение
 
 

Так, мне надо повесить транзакцию на 2-ую субформу(данные в которой зависят от 1-ой, т.е. если в первой выбирается запись - Current, то во 2-ой отображается инфо только по этой записи).
У Гетца я прочитал, что невозможно повесить транзакцию на субформу, если она связана по фильтрам и по подчиненным полям, вот и ищу альтернативу, т.е. если в событии Current 1-ой субформы формировать Recordset 2-ой, то все вроде как будет ок.
вопрос такой уже неоднократно поднимался мною - ответы были (спасибо), но они не те.

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

>вопрос такой уже неоднократно поднимался мною - ответы были (спасибо), но они не те.
Егор (он же 3,14fagor) поднимал вопрос здесь:
http://www.sql.ru/forum/actualthread.aspx?tid=529060
Ответы были мои (пожалуйста). Те, или не те - еще вопрос.

Егор, вы внимательно почитайте Гетса, примерьте всё это к своей ситуации, и всё получится.

  Ответить  
 
 автор: Егор   (26.02.2008 в 15:54)   личное сообщение
 
 

Я не про Вас, Вы мне помогли.
Здесь не тот вопрос/
У меня не получается связать две субформы запросом :( (аж странно, да?)
Что-то получилось, но я не уверен что это приведет к чему-то хорошему :). Щас читаю Гетца вновь, но уже между строк.

  Ответить  
 
 автор: Анатолий (Киев)   (26.02.2008 в 17:13)   личное сообщение
 
 

Допустим, полю ID в СФ1 соответствует поле LinkID в СФ2.
Тот запрос, что я видел в вашей БД возвращает ВСЕ записи. На самом деле там должно быть условие отбора с использованием параметра. Например: "... WHERE [LinkID]=[MyParam]".
В процедуре ResetData (которая должна находиться в СФ1) нужно выполнить следующее:
...
qdf.Parameters("MyParam") = Me![ID]
Set rst = qdf.OpenRecordset
...

У Гетса параметром является ссылка на поле формы, и таких параметров может быть несколько. Поэтому у него написано:
For Each prm In qdf.Parameters
prm.Value = Eval(prm.Name)
Next
Т.е. параметру с именем "[Forms]![FormName]![ControlName]" присваивается значение этого поля из открытой формы, возвращаемое методом EVal.

В вашем случае всего этого не нужно.

  Ответить  
 
 автор: Егор   (26.02.2008 в 17:16)   личное сообщение
51 Кб.
 
 

Вот, что получилось.
функция ResetData(frm_dog) вызывает ошибку, не могу ее исправить. Что я делаю не так?

  Ответить  
 
 автор: Анатолий (Киев)   (27.02.2008 в 12:49)   личное сообщение
46 Кб.
 
 

>Что я делаю не так?
Если откровенно - всё не так.
Я решил, что лучше сделать это самому. Ловите...

  Ответить  
 
 автор: Егор   (27.02.2008 в 13:46)   личное сообщение
 
 

ВАУ, здорово!!!
Вот это класно, спасибо, теперь понял свои глупости и ошибки (и как у Вас так получается? )
СПАСИБО.

  Ответить  
 
 автор: Анатолий (Киев)   (27.02.2008 в 19:08)   личное сообщение
 
 

Еще совет вдогонку...
В опциях VBA установите флажок "Require Variable Declarations" (чтоб в каждом новом модуле сверху писалось Option Explicit). Без этого вы еще таких шишек набьете.

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