powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не все октрытые формы принудительно закрываются
7 сообщений из 7, страница 1 из 1
Не все октрытые формы принудительно закрываются
    #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
Не все октрытые формы принудительно закрываются
    #32441579
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Погано именовал топик. Не все ОТКРЫТЫЕ формы
...
Рейтинг: 0 / 0
Не все октрытые формы принудительно закрываются
    #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
Не все октрытые формы принудительно закрываются
    #32441642
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как оставить две выбранные формы?
...
Рейтинг: 0 / 0
Не все октрытые формы принудительно закрываются
    #32441651
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще у меня некоторые формы по Close каскадно закрывают другие открытые. Как грамотно организовать в таком случае?
...
Рейтинг: 0 / 0
Не все октрытые формы принудительно закрываются
    #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
Не все октрытые формы принудительно закрываются
    #32441770
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, катит
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не все октрытые формы принудительно закрываются
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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