Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как закрыть все открытые юзером формы через For Each ? / 25 сообщений из 36, страница 1 из 2
24.02.2004, 12:04
    #32419153
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Надо с помощью Public Sub позакрывать все формы открытые юзером.
Сначала определить загружена ли форма и если она открыта закрыть ее.
Но вот как?
...
Рейтинг: 0 / 0
24.02.2004, 12:06
    #32419155
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
свойство isloaded у объектов семейcтва allforms
...
Рейтинг: 0 / 0
24.02.2004, 12:49
    #32419232
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
этого свойства что то не нашел.

Public Sub CloseAllForms()

Dim allfrm As AllForms


?????

End Sub
...
Рейтинг: 0 / 0
24.02.2004, 12:59
    #32419246
Alviga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
For each xForm in Forms
Unload xForm
next
...
Рейтинг: 0 / 0
24.02.2004, 13:28
    #32419327
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Sub CloseAllForms()
Do Until Forms.Count = 0
DoCmd.Close acForm, Forms(0).Name
Loop
End Sub
...
Рейтинг: 0 / 0
24.02.2004, 14:00
    #32419391
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Спасибо всем. Действует.
...
Рейтинг: 0 / 0
24.02.2004, 19:14
    #32420012
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Сергей ГавриловDo Until Forms.Count = 0
DoCmd.Close acForm, Forms(0).Name
Loop
Только это не будет работать с несколькими экземплярами формы.
...
Рейтинг: 0 / 0
25.02.2004, 10:39
    #32420386
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
GeoТолько это не будет работать с несколькими экземплярами формы.
У меня работает. Что я неправильно делаю? :-)
...
Рейтинг: 0 / 0
25.02.2004, 11:18
    #32420445
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
У меня тоже работает.
...
Рейтинг: 0 / 0
25.02.2004, 11:24
    #32420455
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
А вы точно несколько экземпляров одной формы открываете?
...
Рейтинг: 0 / 0
25.02.2004, 11:38
    #32420483
Как закрыть все открытые юзером формы через For Each ?
проверили. Работает.
...
Рейтинг: 0 / 0
25.02.2004, 11:55
    #32420529
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
А если в коллекции нет ни одной формы хотя бы в одном экземпляре, то значит нет и в нескольких экземплярах? :-)
утверждение
А бывают формы, которые открыты, но в коллекции не значатся (типа приехали в москву и живут без регистрации :-)
шутка
...
Рейтинг: 0 / 0
25.02.2004, 14:23
    #32420901
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
авторА если в коллекции нет ни одной формы хотя бы в одном экземпляре, то значит нет и в нескольких экземплярах? :-)
Осторожнее надо, чуть голову не сломал, читая это :-)
...
Рейтинг: 0 / 0
25.02.2004, 18:44
    #32421533
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Function aaa()
  Dim f1 As Form
  Dim f2 As Form
  Set f1 = New Form_Форма1
  Set f2 = New Form_Форма1
  f1.Visible = True
  f2.Visible = True
'***************
  MsgBox Forms( 0 ).Name
  Do Until Forms.Count =  0 
    DoCmd.Close acForm, Forms( 0 ).Name
  Loop
End Function


Странно. На работе (а97 sr1) не работает. Дома (a97 sr2, aXP sp 2) работает.
Вывод - ставьте сервис-паки.
...
Рейтинг: 0 / 0
25.02.2004, 18:59
    #32421557
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
GeoDoCmd.Close acForm, Forms(0).Name
Если открыто 10 форм под названием MyForm и я делаю
DoCmd.Close acForm, "MyForm"
то закрывается произвольная из 10? Разве это может кого-то устраивать?
...
Рейтинг: 0 / 0
25.02.2004, 19:08
    #32421574
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
2ВС
Когда надо закрыть все формы, то может.
А если при этом выскакивает ошибка, то не может :)
...
Рейтинг: 0 / 0
25.02.2004, 19:22
    #32421599
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Секундочку. У меня принципиальный вопрос. Прошу прощения, что задаю его тут, а не в специальном топике про экземпляры форм.

DoCmd.Close acForm, имя - это единственный способ закрыть форму??? Только по имени??? И в кнопке "Выход" тоже???

Если открыто 10 форм под названием MyForm и у каждой в кнопке "Выход" написано
DoCmd.Close acForm, Me.Name
то кнопка "Выход" закрывает произвольную форму из 10???
...
Рейтинг: 0 / 0
25.02.2004, 22:56
    #32421697
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
авторDoCmd.Close acForm, имя - это единственный способ закрыть форму??? Только по имени??
Ну почему, есть и кнопка X :)
Если форма открыта через объектную переменную, то тоже понятно как ее можно закрыть.
авторЕсли открыто 10 форм под названием MyForm и у каждой в кнопке "Выход" написано
DoCmd.Close acForm, Me.Name
то кнопка "Выход" закрывает произвольную форму из 10???
Да, действительно, кнопка закрывает первую из форм. Т.е. нажимаем кнопку выход (в которой DoCmd.Close acForm, Me.Name) на одной форме, а может закрытся другая (проверено).
Правда, можно закрывать форму командой DoCmd.Close. Тогда закрывается активная форма. Но мне кажется, что иногда бываю глюки, может просто кажется...
...
Рейтинг: 0 / 0
25.02.2004, 23:04
    #32421701
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Глюки действительно бывают. Поэтому я приучился писать DoCmd.Close acForm, Me.Name, а не просто DoCmd.Close.

И выходит, что на форме, открываемой в нескольких экземплярах, невозможно сделать кнопку "Выход"???
...
Рейтинг: 0 / 0
25.02.2004, 23:08
    #32421703
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Меняй ей Caption при открытии, а потом проверяй его на соответствие в For Each
...
Рейтинг: 0 / 0
25.02.2004, 23:10
    #32421706
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
авторИ выходит, что на форме, открываемой в нескольких экземплярах, невозможно сделать кнопку "Выход"???
Ну почему? Кнопку-то можно, только код делать другой, например, вызывающий действие по сбросу объектной переменной.
...
Рейтинг: 0 / 0
25.02.2004, 23:10
    #32421707
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
У студентов как всегда богатая фантазия... :^(
...
Рейтинг: 0 / 0
25.02.2004, 23:14
    #32421712
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Это было Темному.

2 Serge Gavrilov:
А как из формы сослаться на объектную переменную, которая ссылается на эту форму? Сработает ли такое:

for each o in mycollection
if o.form is me then...
...
Рейтинг: 0 / 0
25.02.2004, 23:17
    #32421714
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
авторМеняй ей Caption при открытии, а потом проверяй его на соответствие в For Each
Только как это поможет закрыть конкретную форму?
Все формы и так закрываются по по приведеному мной коду.
...
Рейтинг: 0 / 0
25.02.2004, 23:19
    #32421716
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как закрыть все открытые юзером формы через For Each ?
Ну дай побуйствовать фантазии
А все формы можно и kill process msaccess закрыть :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как закрыть все открытые юзером формы через For Each ? / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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