Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
Всем привет, можно озадачить попробовать?

предыстория есть две таблицы и формы на них, в одной хранится типа список, вторая его использует, а проблемка заключается в следующем, когда идет выбор ид поля из списка соответствующего - новое значение - он открывает форму на добавление записи в таблицу список, там после ввода срабатывает скл код на замену ид в таблице данных на значение ид из списка, а вот как мне теперь обновить форму таблицы данных? requery /DoCmd.Requery Forms!hardware![hid]/ на нее не проходит :-(
4 янв 06, 14:52    [2228988]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
Student007
Member

Откуда: Санкт-Петербург
Сообщений: 671
Если правильно понял, то Me.your_combobox.Requery
4 янв 06, 20:00    [2229532]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
Student007
Если правильно понял, то Me.your_combobox.Requery

не правильно понял........
активна будет вторая форма, где я вношу данные, а обновить надо бы первую, открытую но не активную форму......

образец что ли кинуть?
5 янв 06, 08:58    [2229988]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
так, там форма "hardware", если в комбо последнем выбрать "new manufacturer"
откроется форма newmanufac где после ввода имени происходит замена ид от new manufacturer на ид равный введенному значению, а вот как обновить форму hardware? при переходе на нее в комбобоксе пусто.............

может так легче будет?
да 2000, если кто что хочет........

К сообщению приложен файл (Db1.zip - 24Kb) cкачать
5 янв 06, 09:04    [2229994]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
Student007
Member

Откуда: Санкт-Петербург
Сообщений: 671
а так?

К сообщению приложен файл (db1_fixed.rar - 19Kb) cкачать
5 янв 06, 09:32    [2230024]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
SBL
Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=Forms!newmanufac!mid where mid=1;"
End Sub
Во-первых:

Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=" & Forms!newmanufac!mid & " where mid=1"
End Sub

Во-вторых, таблицы software нет у вас в примере (а также нет макроса newman, функции ChildForm_UnLoad - это все вызывается формами вашими).

А вообще, задумка ваша какая-то сильная, не могу понять...

a) Выбираю значение <New Manufacturer> - подразумевая, что хочу добавить нового быка-производителя. Мне в ответ открывается форма, где есть все старые производители. Т.е. для ввода нового юзеру надо еще раз жать кнопку - дабы перейти новую запись.

b) Это бы пол-беды. Но юзер-то что делает сразу - начинает менять ту запись которая открылась. А открылась ему ваша New Manufacturer с кодом 1. Он меняет name - и в ответ выполняется запрос, который меняет код 1 на текущий код (то есть 1 на 1, например).

c) Даже если он таким образом не загубит вам слово New Manufacturer на слово OLd Purchaser, он просто заменит любую понравившуюся ему запись.


Так что подумайте вот над чем:

1) А не открывать ли вам вам форму в режиме на добавление новых записей.

2) В любом случае, зачем AfterUpdate имени делать обновление кода. Если вы таким образом ловите/фиксируете момент ввода нового производителя - так у вас же там кнопка есть Save'n'Close - разве не подразумевалось, что как раз по ее нажатию надо сделать все:

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

Кстати, последнее программно сделать можно так, например:
Forms("hardware")("mid").Requery
5 янв 06, 09:50    [2230037]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
Student007
а так?

спасибо! то что надо........
счас еще только попробую домучить чтобы newmanufac не мозолил глаза......
5 янв 06, 09:51    [2230038]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
Karfaqen
SBL
Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=Forms!newmanufac!mid where mid=1;"
End Sub
Во-первых:

Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=" & Forms!newmanufac!mid & " where mid=1"
End Sub


2) В любом случае, зачем AfterUpdate имени делать обновление кода. Если вы таким образом ловите/фиксируете момент ввода нового производителя - так у вас же там кнопка есть Save'n'Close - разве не подразумевалось, что как раз по ее нажатию надо сделать все:

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

Кстати, последнее программно сделать можно так, например:
Forms("hardware")("mid").Requery


упс........ 1.а и 1.б там как раз макрос висел на открытие формы для введения новой записи...... сорри, просто забыл прикрутить..........

а насчет 2 - я в раздумьях пока что лучше, кнопка или AfterUpdate имени а за код - спасибо!
5 янв 06, 09:56    [2230047]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=Forms!newmanufac!mid where mid=1;"
End Sub
Во-первых:
Private Sub name_AfterUpdate()
DoCmd.RunSQL "Update software set mid=" & Forms!newmanufac!mid & " where mid=1"
End Sub

хмммммм.........а почему именно так??? он же работает и в первом варианте...

/ну не знаю я вба............почти........
5 янв 06, 09:58    [2230049]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
SBL
Member

Откуда: Tallinn
Сообщений: 666
А вообще, задумка ваша какая-то сильная, не могу понять...


а задумка простая........ инвентура сетки........... просто нужно знать что и где стоит.......... чтобы в случае чего можно было иметь данные под рукой....
5 янв 06, 11:06    [2230155]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обновлению формы из другой  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
SBL
а почему именно так??? он же работает и в первом варианте...
Согласен, ваш запрос сам залезет за значением в форму, указанную в тексте запроса.

SBL
Karfaqen
задумка ваша какая-то сильная, не могу понять...
а задумка простая...
Мой вопрос был риторический ;) Чтоб как-то предварить разговор о странностях программирования. Если же отсутствовавший макрос подготавливает форму для ввода, то тогда вам лишь стоит обратить внимание на то, что у меня написано под цифрой (2). Успехов!
5 янв 06, 13:54    [2230594]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить