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

start [/forum/topic.php?fid=45&mobile=1&tid=1677772]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 459ms |

| 0 / 0 |
