Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Закрытие формы на Activate / 25 сообщений из 48, страница 1 из 2
19.08.2003, 12:10:53
    #32240051
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Выдаёт ошибку:
Run-time error '2585':

This action can't be carried out while processing a form or report event


как бы мне закрыть её, просто на Activate проверяються некоторые условия и в определённом случае надо прикрыть формочку...
...
Рейтинг: 0 / 0
19.08.2003, 12:21:32
    #32240060
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
При выходе из Activate включаем таймер, в таймере закрываем форму.
...
Рейтинг: 0 / 0
19.08.2003, 12:24:36
    #32240063
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Извени никогда с таймером не работал, не покажешь?
...
Рейтинг: 0 / 0
19.08.2003, 12:31:45
    #32240079
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Form_Activate()
...
If ... Then Me.TimerInterval =  1000 
End Sub

Private Sub Form_Timer()
DoCmd.Close acForm, Me.Name
End Sub

' :^)
...
Рейтинг: 0 / 0
19.08.2003, 12:36:56
    #32240093
Sfagnum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Пасибки
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.09.2004, 11:40:38
    #32691434
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Кстати, в каком событии, кроме таймера, форма может закрывать саму себя? Что-то у меня получается, что ни в каких готфокусах и афтерапдейтах нельзя и идет та же ошибка 2585. Неужели путь с таймером - единственный, чтобы разорвать эти дурацкие транзакции?
...
Рейтинг: 0 / 0
13.09.2004, 11:58:31
    #32691489
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Код: plaintext
1.
2.
Private Sub Form_Open(Cancel As Integer)
Cancel = True
End Sub
...
Рейтинг: 0 / 0
13.09.2004, 11:59:40
    #32691493
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
ЛифчикКстати, в каком событии, кроме таймера, форма может закрывать саму себя? Что-то у меня получается, что ни в каких готфокусах и афтерапдейтах нельзя и идет та же ошибка 2585. Неужели путь с таймером - единственный, чтобы разорвать эти дурацкие транзакции?

KeySend
...
Рейтинг: 0 / 0
13.09.2004, 12:09:29
    #32691513
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
АлексейК
Код: plaintext
1.
2.
Private Sub Form_Open(Cancel As Integer)
Cancel = True
End Sub
Спасибо, Алексей! Получил заряд бодрости до конца раб.дня:)

PS Понятно, альтернативы нет
...
Рейтинг: 0 / 0
13.09.2004, 12:13:21
    #32691523
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
2 Лифчик
Почему это на афтерапдейтах нельзя закрывать?
Код: plaintext
1.
2.
Private Sub Form_AfterUpdate()
    DoCmd.Close acForm, Me.Name
End Sub
и усе работает.
...
Рейтинг: 0 / 0
13.09.2004, 13:01:11
    #32691675
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лох Позорный2 Лифчик
Почему это на афтерапдейтах нельзя закрывать?

Код: plaintext
1.
2.
Private Sub Form_AfterUpdate()
    DoCmd.Close acForm, Me.Name
End Sub
и усе работает.
Вот такой комплект событий не работает с ошибкой 2585
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Form_AfterUpdate()
DoCmd.Close acForm, FormName, acSaveYes
End Sub

Private Sub HyperLinkControl_AfterUpdate()
...
Me.Refresh
End Sub

Private Sub HyperLinkControl_GotFocus()
DoCmd.RunCommand acCmdEditHyperlink
End Sub
...
Рейтинг: 0 / 0
13.09.2004, 13:07:46
    #32691700
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
А зачем тебе Me.Refresh на афтерапдейте контрола?
Может это такой модный способ запись сохранить?
Замени эту строчку на Me.Dirty = False и радуйся жизни :)
...
Рейтинг: 0 / 0
13.09.2004, 13:26:53
    #32691783
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лох ПозорныйА зачем тебе Me.Refresh на афтерапдейте контрола?
Может это такой модный способ запись сохранить?
Замени эту строчку на Me.Dirty = False и радуйся жизни :)Это такой новомодный способ инициировать событие формы автерапдейт, в котором магическое действие закрытия осуществляется. Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :(

ЗЫ Могу закрыть только таймером, блин
...
Рейтинг: 0 / 0
13.09.2004, 13:34:25
    #32691811
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Это такой новомодный способ инициировать событие формы автерапдейт
Это весьма странный способ инициировать событие формы афтерапдейт. Через жопу автогеном.
Событие само инициируется - когда запись сохранится. Вот и сохраняй запись. Хоть через DoCmd.RunCommand acCmdSaveRecord, хоть через Dirty. Делать Refresh и перепрочитывать все данные - не нужно, хоть оно и запись сохранит тоже.

Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :(
у меня работает. аксес 97 и XP
чего-то ты не договариваешь.
...
Рейтинг: 0 / 0
13.09.2004, 13:39:34
    #32691832
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лифчик
Вот такой комплект событий не работает с ошибкой 2585
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Form_AfterUpdate()
DoCmd.Close acForm, FormName, acSaveYes
End Sub

Private Sub HyperLinkControl_AfterUpdate()
...
Me.Refresh
End Sub

Private Sub HyperLinkControl_GotFocus()
DoCmd.RunCommand acCmdEditHyperlink
End Sub


Код, который ты привел - страноватенький, конечно.
То, о чем говорил ЛП - работает:

Private Sub HyperLinkControl_AfterUpdate()
DoCmd.Close acForm, FormName, acSaveNo
End Sub

Видимо, ты пытаешьсяя сказать о ситуации, при которой код, размещенный
в afterUpdate контрола формы приводит к возникновению событий на другом контроле...
...
Рейтинг: 0 / 0
13.09.2004, 13:40:43
    #32691834
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Кстати, после вызова DoCmd.RunCommand acCmdEditHyperlink - и у меня перестало работать :)
...
Рейтинг: 0 / 0
13.09.2004, 13:48:13
    #32691865
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лох Позорный Это такой новомодный способ инициировать событие формы автерапдейт
Делать Refresh и перепрочитывать все данные - не нужно, хоть оно и запись сохранит тоже.
Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :(
у меня работает. аксес 97 и XP
чего-то ты не договариваешь.СанСаныч(?), принимаю все обвинения. Есть только одна отмаза - форма с одним контролом, контрол источник берет из таблы, состоящей из одной строки. И вообще, все что здесь делается - делается через ж.пу, потому что комбо не наследует нужных свойств.

ЗЫ Я все сказал и чист перед тобой. Тока может вот эта строка подло клинит - DoCmd.RunCommand acCmdEditHyperlink? Я этот диалог САМ не закрываю, только ОК ему нажимаю. Он запоминает то что надо где надо, но может не закрывается сразу и клинит транзакцию апдейта моего поля и формы?
...
Рейтинг: 0 / 0
13.09.2004, 13:51:43
    #32691882
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
за что я и не люблю объект DoCmd
уж слишком он асинхронный :(
...
Рейтинг: 0 / 0
13.09.2004, 14:01:10
    #32691911
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Да, точно. Помнишь, в прошлом году я тебе базу высылал? Там на форме в событии OnDelete пытался путем DoCmd просто запустить другую форму, и эта пакость ставила на запись какую-то лишнюю блокировку. Может это как-то для Фака сформулировать, типа "Поменьше используйте DoCmd в событиях апдейта и делита, и вообще поменьше ее используйте ":)
...
Рейтинг: 0 / 0
13.09.2004, 14:56:39
    #32692039
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лох Позорныйза что я и не люблю объект DoCmd
уж слишком он асинхронный :(

2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ????????
ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО,
КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ...

ажно комментарии в глотке застряли...


2 Лифчик
блин, я уже потерялся - в какой поток тебе отвечать...

Я понял кажется наконец, о чем ты так долго спрашива.
САМОЕ ИНТЕРЕСНОЕ, ЧТО ТЫ ЭТО СДЕЛАЛ!!!
Осталась одна запятая... Кадется, её можно поставить...

(Я бы не додумался до твоей идеи)

Скажы - ты имитируешь вызов контрола ред. гиперлинк "по требованию"?

То есть, твоя форма нужна только для того, чтобы достучаться до контрола
редактирования гиперлинка - так?
...
Рейтинг: 0 / 0
13.09.2004, 15:00:24
    #32692044
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Victosha2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ????????
ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО,
КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ...
Это к чему?
Ну не люблю я DoCmd, чтож теперь поделать. Иногда им все-таки приходится пользоваться (ну не умею я по другому формы закрывать), менее асинхронным он от этого не становится.
...
Рейтинг: 0 / 0
13.09.2004, 15:08:28
    #32692059
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Лох Позорный Victosha2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ????????
ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО,
КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ...
Это к чему?
Ну не люблю я DoCmd, чтож теперь поделать. Иногда им все-таки приходится пользоваться (ну не умею я по другому формы закрывать), менее асинхронным он от этого не становится.

Это к тому - что форма - она вся асинхронная. И иногда пребывает в режимах, когда "синхронная" попытка подергать за некое действие не проходит
- в силу незавершенности текущего действия и их "режимной" несовместности.

DoCmd - он в такой ситуации ОБЯЗАН и не может не быть асинхронный -синхронный он на х";ен никому не нужен. А такое впечатление - что он не полностью следует своей желательной и необходимой программисту асинхронности.

Не любить его легко - заменить непросто.
Подозреваю, что не любишь ты его именно в тех местах, где он твои АСИНХРОННЫЕ ожидания не оправдывает...
...
Рейтинг: 0 / 0
13.09.2004, 15:19:54
    #32692088
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
2 Victosha
Ты знаешь, вот когда я форму закрываю с помощью DoCmd.Close (снаружи, а не из самой же формы), то я ожидаю, что после отработки этой команды - форма будет закрыта. События там всякие отработают, из коллекции Forms она пропадет. Вот такое вот у меня скромное желание. А аксесу с его DoCmd на мои желания плевать. Сколько раз сталкивался, что DoCmd.Close отрабатывает, причем без ошибок, а форма еще не закрыта, обработчик события закрытия не отработал, из коллекции не пропало. Свинство. Когда оно отработает целиком и полностью - одному DoCmd известно.

Вот и кажись подобное свинство. DoCmd.RunCommand acCmdEditHyperlink непонятно когда запись/форму освобождает, а без этого хрен закроешь.

Так что не люблю я DoCmd именно в тех местах, где он мои СИНХРОННЫЕ ожидания не оправдывает.
...
Рейтинг: 0 / 0
13.09.2004, 15:22:21
    #32692092
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Кстати, COM-овские объекты по определению синхронны
Внутри своих методов они могут вызывать ассинхронные куски кода на выполнения, но сами методы - синхронны.
Вот зачем DoCmd асинхронностью балуется - я понять не могу.
...
Рейтинг: 0 / 0
13.09.2004, 15:26:32
    #32692101
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие формы на Activate
Victosha
Скажы - ты имитируешь вызов контрола ред. гиперлинк "по требованию"?

То есть, твоя форма нужна только для того, чтобы достучаться до контрола
редактирования гиперлинка - так?Иес. Раз контрол в подчиненной форме потерял нужные мне гиперлинковые свойства (в т.ч. - возможность вызова диалога), то я и хочу передать фокус на другой, подходящий контрол. Но самое интересное, что некто "бывает" в другой ветке подсказал, как подходящий контрол на главной форме устроить. Щас буду делать. Или есть еще какие-нить соображения? Всегда рад...

Блин, я на форуме в основном в роли просителя выступаю, стыдно, пора уже начать самому советы давать. Тока я не успеваю чаще всего :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Закрытие формы на Activate / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]