|
|
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Есть главная форма в которой програмным путем изменяется скрытое поле txtAccountID. На форме есть подчиненная форма, данные которой должны изменяться в зависимости от txtAccountID (процедура изменения данных RequeryPublishDates). Привязываешь Requery к AfterUpdate текстового поля -- рефрешит, только после изменения текстового поля с клавиатуры вручную. Т.е. AfterUpdate привязано к событиям клавиатуры и на программное изменение данных не реагирует. Какой выход из этой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 01:50 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Да, это стандартное поведение Аксесса в отличие от VB. Решение одно - вызывать явным образом процедуру txtAccountID_AfterUpdate во всех тех местах программы, где это требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 01:55 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Да... теперь совсем ламерский вопрос: Если я изменяю это поле в другой подчиненной форме, т.е. в другом модуле формы: Private Sub Form_Current() Me.Parent("txtAccountID") = Me.Recordset.Fields("AccountID").Value 'по-идее тут должно генериться событие End Sub Как в этом случае достучаться до этого события? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 02:19 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
В той форме, где расположено это поле, есть обработчик: Private Sub txtAccountID_AfterUpdate() ... End Sub Способ 1. Переправляем Private на Public и обращаемся так: Me.Parent.txtAccountID_AfterUpdate Способ 2. Описываем в обычном модуле процедуру, переносим весь текст обработчика в нее и обращаемся к ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 02:24 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
По первому способу выдает ошибку 2465: Application-defined or object-defined error:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 02:40 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Жалко. У меня когда-то получалось. Хорошо, что есть второй способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 02:41 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Звиняйте, но еще один вопрос: главная форма -- frmAccountsJournal подчиненная -- frmPublishDates Когда обработчик стоял в главной форме: Me!frmPublishDates.Form.RecordSource = strFullSQL Теперь, по второму способу, надо перенести обработчик в отдельный модуль и напрямую указывать ссылку на главную: Forms("frmAccountsJournal")("frmPublishDates").Form.RecordSource = strFullSQL Не работает:( Хотя Гетц, Литвин, Гилберт и Бэрон рядом:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 03:15 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
а сделать связь между формами по полю txtAccountID в этом случае не подходит ? в такой консрукции для новых записей автоматически выставляется связанное значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 09:27 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Дело в том, что надо програмно отслеживать значения поля и выполнять определенные действия, кроме обновления подчиненной формы. Вот так. Все-таки как из программного модуля обратится к свойству RecordSource подчиненной формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 10:42 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Forms("frmAccountsJournal")![имяКОНТРОЛАвкоторуювложенаподформа].Form.RecordSource = strFullSQL Forms("frmAccountsJournal").controls("имяКОНТРОЛАвкоторуювложенаподформа").Form.RecordSource = strFullSQL Forms("frmAccountsJournal").[имяКОНТРОЛАвкоторуювложенаподформа].Form.RecordSource = strFullSQL имя контрола и имя подчиненной формы не одно и тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 10:50 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Чем дальше в лес, тем толще партизаны... Все начиналось с AfterUpdate... Во всех трех примерах имяКОНТРОЛАвкоторуювложенаподформа = frmPublishDates выдает ошибку "Введеное выражение содержит недопустимую ссылку на свойство "Form/Report" Я вставляю подчиненную форму в главную, мастер предлагает выбрать таблицу frmPublishDates, потом предлагает выбрать имя подчиненой формы - я оставляю имя frmPublishDates -- т.е. этот контрол с именем frmPublishDates является контейнером для формы frmPublishDates? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 16:15 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
имяКОНТРОЛАвкоторуювложенаподформа.SourceObject = frmPublishDates ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 16:30 |
|
||
|
Requery после изменения текстового поля?
|
|||
|---|---|---|---|
|
#18+
Блин. Разобрался. Дело, наверное, вот в чем: главная форма -- frmAccountsJournal подчиненные -- frmPublishDates, frmAccounts Когда, например, конструкция Forms("frmAccountsJournal")![frmPublishDates].Form.RecordSource = strFullSQL используется в модуле главной формы, то в это время все формы существуют в памяти, все работает. Чтобы обойти особенности свойства AfterUpdate, приходится вставлять в событие Current подчиненной формы frmAccounts процедуру Requery, содержащую эту конструкцию. Но существует, ситуация (напаример, при открытие формы frmAccountsJournal), когда формы frmAccountsJournal, frmAccounts существует, а форма frmPublishDates -- нет. Происходит ошибка... Все это лечится On Error Resume Next Forms("frmAccountsJournal")![frmPublishDates].Form.RecordSource = strFullSQL Это не тот вариант, который мне нужен. Предпочтительнее было бы в ручную генерить событие AfterUpdate текстового поля главной формы из подчиненной. А на это событие, вешать обработчик. Но как... Большое спасибо вем, кто уделил мне внимание... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 18:18 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1709&tid=1677772]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 387ms |

| 0 / 0 |
