|
|
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Есть форма1, а в ней подчиненная форма_sub1. Из формы1 запускается форма2 с подчиненной формой_sub2. В форме_sub2 вносятся изменения в таблицу. Вопрос: как обновить данные в форма_sub1?. Если бы изменения вносились в простой форме, без подчиненной, то в обработке события деактивации можно было бы поставить: [Forms]![Form1]![Form1_sub].Form.Requery. А в моем варианте так не получается, такое впечатление, что вообще нет обращения к форме1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:24 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Что значит не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:25 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Не получается, в смысле не обновляются данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:27 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Способ правильный. Видимо, есть что-то еще, чего мы не знаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:29 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
независимо откуда ето делается Forms!Имя.Refresh ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:31 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
извиняемся при етом данные формы отобразятся сначала, чтобы перейтии на ту же запись следует перед Refresh сделать следующее Forms!Имя.SetFocus Dim KdRec As Long Private Sub Form_Activate() KdRec = Me.CurrentRecord Me.Requery If KdRec <> 0 Then DoCmd.GoToRecord , , acGoTo, KdRec End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:34 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Может это поможет? Я перед закрытием формирую таблицу для формы_sub1 заново. (не буду менять названия таблиц, время поберегу) DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM Budget_Itog;" DoCmd.SetWarnings True MySQL1 = "INSERT INTO Budget_Itog SELECT Query_Budget.* FROM Query_Budget;" MySQL2 = "INSERT INTO Budget_Itog SELECT ObjectShedule_Itog_Planned.* FROM ObjectShedule_Itog_Planned;" MySQL3 = "INSERT INTO Budget_Itog SELECT ObjectShedule_Itog_Actual.* FROM ObjectShedule_Itog_Actual;" CurrentDb.Execute MySQL1 CurrentDb.Execute MySQL2 CurrentDb.Execute MySQL3 [Forms]![Form1]![Form1_sub].Form.Requery Вот когда форма2 была обыкновенной табличной формой, все работало нормально. Но когда потребовалось её сделать подчиненной (у шефа бзик на кнопку Close, на крестик он не в состоянии нажимать), но никакой реакции в форме1 нет. Вообще, если раньше призапуске сразу формы2, она ругалась, на то что нет формы1, то сейчас не ругается. Отсюда я делаю вывод, что строчка с Requery форму1 воспринимает как форму2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:42 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
> DoCmd.SetWarnings False > DoCmd.RunSQL "DELETE * FROM Budget_Itog;" > DoCmd.SetWarnings True А вот так делать не надо. Если программа вывалится на ошибку после SetWarnings False, то останется Аксесс, который при всех ошибках молчит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:47 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Согласна, но не это же главное ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:57 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
А может, именно это и происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 13:59 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
А DoCmd.SetWarnings True ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:00 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Так я же говорю про случай, когда оно вываливается и до True не доходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:04 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Так не вываливается сейчас! К тому же если я оставлю вопрос о том, удалять ли столько то записей, опять будет криков, мол "зачем мне знать, что ты там из tmp-таблицы записи удаляешь!" Вопрос то остается открытым, почему не обновляется форма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:07 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
> К тому же если я оставлю вопрос о том, удалять ли столько то записей, опять будет криков, мол "зачем мне знать, что ты там из tmp-таблицы записи удаляешь!" На этот случай есть CurrentDb.Execute, оно не кричит. :^) > Вопрос то остается открытым, почему не обновляется форма? Ну, не прошла моя гипотеза, и не надо. :^))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:09 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
доходит или нет - см. в отладке. А есть еще и экзотика вида: данные, внесенные в форму (по которым пересчитываются запросы) не сохранены на момент пересчета. (Запросы вернут "старые значения). ...ну и т.п. В целом - проползти по шагам. Станет ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:13 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
А DoCmd.SetWarnings True надо ставить после обработчика ошибок (за меткой выхода). Тады, заметим в пику Санычу, трахаться с передачей параметров в Execute (ежели они в виде [Forms]!...) не придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:16 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
To assa: Я уже проползла, данные в самой таблице обновляются, но вот в таблицу из запроса идут старые. получается, что все три оператора MySQL = "INSERT INTO Budget_Itog SELECT ..." работают со старыми данными. Тогда вопрос, а почему все правильно работает в случае, если это обрабатывается в простой, а не подчиненной форме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:25 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Пика принята. Трахаться не будем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 14:34 |
|
||
|
Обновление подчиненной формы из другой подчиненной
|
|||
|---|---|---|---|
|
#18+
Т.е. данные в таблице те, что нужно? а в форме не обновляются? А запрос (фильтр) формы, простите, как построен? Через некие параметры? или через связь полей? Вот их своевременное обновление и надо проверить. А вообще то "я уже полазала" - не ответ. Если бы "уже", то проблем бы и не было. Ставите точку останова на входе, а далее - по шагам. Подключитесь на всяк случай к той же базе из второго окна, чтобы запускать запросы (в некоторых случаях запуск запроса из отлаживаемого приложения затруднителен). Вот и весь инструментарий. И только "неявные" механизмы аксесса надо проверять (у меня на памяти случай, когда в главной форме есть поле, служащее для синхронизации одной подчиненной с другой, с источником вида [Forms]![Main]![Slave]!Form![id], а в настроке второй связанной формы выставлены связи по полям, так вот в некоторых случаях оказалось желательно "принудительно" обновлять содержимое этого поля, то же верно, если уровень вложенности форм больше 1-го). Ибо их трудно поймать "в отладчике" :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 15:03 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1720&tid=1678199]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 349ms |

| 0 / 0 |
