Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не все октрытые формы принудительно закрываются / 7 сообщений из 7, страница 1 из 1
15.03.2004, 11:42
    #32441574
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
При кликаньи кнопки в форме Dictionaries хочу закрыть все открытые формы, кроме этой самой и основного меню Switchboard:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Logistics_Click()
Dim frms As Forms
Dim frm As Form
Set frms = Application.Forms
If MsgBox( "Закрываем все формы, кроме основного меню и текущей. Продолжить?" ,vbOKCancel) = vbOK Then
Do While frms.Count >  2  'БЕЗ ЭТОГО ЦИКЛА ОСТАЕТСЯ ПОСЛЕДНЯЯ ОТКРЫТАЯ ФОРМА
For Each frm In frms
If Not (frm.Name =  "Dictionaries"  Or frm.Name =  "Switchboard" ) Then
DoCmd.Close acForm, frm.Name, acSaveYes
End If
Next frm
Loop
DoCmd.OpenForm  "DealStages" , acFormDS, , , , ,  1 
Else
End If
End Sub

Приходится вводить указанный цикл, т.к. в первом проходе форма, из которой я перехожу на указанную ветку, принудительно не закрывается. Со второй попытки закрывается. В чем дело?
...
Рейтинг: 0 / 0
15.03.2004, 11:45
    #32441579
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
Погано именовал топик. Не все ОТКРЫТЫЕ формы
...
Рейтинг: 0 / 0
15.03.2004, 11:59
    #32441609
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
Удалять объекты из коллекции нельзя способом
For Each frm In frms

или For i = 0 To frms.Count-1

Коллекция при удалениии формы меняется, поэтому правильнее будет
For i = frms.Count-1 To 0 Step -1
...
Рейтинг: 0 / 0
15.03.2004, 12:12
    #32441642
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
А как оставить две выбранные формы?
...
Рейтинг: 0 / 0
15.03.2004, 12:16
    #32441651
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
И вообще у меня некоторые формы по Close каскадно закрывают другие открытые. Как грамотно организовать в таком случае?
...
Рейтинг: 0 / 0
15.03.2004, 12:57
    #32441751
sv80
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
Обращайся по индексу в колекции в данном случае счетчик i

Private Sub Logistics_Click()
Dim frms As Forms
Dim frm As Form
Set frms = Application.Forms
If MsgBox("Закрываем все формы, кроме основного меню и текущей. Продолжить?",vbOKCancel) = vbOK Then
For i = frms.Count-1 To 0 Step -1
If Not (frms(i).Name = "Dictionaries" Or frms(i).Name = "Switchboard") Then
DoCmd.Close acForm, frms(i).Name, acSaveYes
End If
Next i
DoCmd.OpenForm "DealStages", acFormDS, , , , , 1
Else
End If
End Sub
...
Рейтинг: 0 / 0
15.03.2004, 13:08
    #32441770
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не все октрытые формы принудительно закрываются
Спасибо, катит
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не все октрытые формы принудительно закрываются / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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