![]() |
Помогите создать 2 экземпляра формы. (VBA,Access)
Доброго времени суток.
Есть 2 формы. 1 вызывает 2 с неким параметром: DoCmd.OpenForm "ph_f_search_res_form", , , , , , se_list.Column(1) Все работает. Но если форма ph_f_search_res_form открыта, то нельзя вызвать еще один ее экземпляр. =( Это возможно ? Если возможно, то подскажите как, пожалуста. :help: |
При открытии формы проверяй, открыта ли она, и если да, то копируй форму, и эту копию уже и открывай. Вот код для создания копии формы:
Код:
Dim saveCount As IntegerКод:
Function IsLoaded(ByVal strFormName As String) As BooleanКод:
On Error Resume Next |
Неработает =(
Говорит что не может найти свеже скопированый обьект. Цитата:
|
А вообще объект копируется? Отладчиком пройди, посмотри, создается копия вообще, и на какой строке ошибка, вдруг это при удалении возникает, если On Error Resume Next не сказал =)
Если при открытии копии ошибка, то м.б. надо закрытую форму копировать, хотя у меня в Access 2002 можно и открытую обрабатывать. Попробуй копировать нужную форму при открытии открывающей, а потом делать копию уже с этой копии. Вообще то Access какой версии используешь? |
MS Office Access 2003.
Сейчас попробую выяснить... Дико извиняюсь - бытавая, я прошу прощения, задолбаность. :idontnow: Перепутал все что только можно. =) Уже все работает. Проблема была с удалением еще не созданной формы. формы. Еще раз извиняюсь за собственную невнимательность. :rolleyes: |
Вопрос по закрытию формы:
Нужно удалять копии когда закрывается эта самая копия. тоесть она дролжна инициировать свое удаление. Написал: Цитата:
Цитата:
|
Если я правильно помню - форма аксесса неразрывно связанна с неким дата-сорсом - таблицей или рекордсетом. (1) не факт что этот объект копируется при копировании формы - можето он эксклюзивный ? (2) в момент закрытия формы данный объект убивается, при попытке закрытия копии ... могет и заглючить. А поможет ли древнехалявный On Error Resume Next ?
|
Цитата:
Цитата:
Цитата:
Насколько я понял, для того что бы обработка ошибки пропускалась ф-я должна выглядеть так ? Цитата:
С уважением. Ворон. |
Попробуй удалять в обработчике события "Закрытия":
Код:
Private Sub Form_Close()Код:
DoCmd.OpenForm newname, , , , , acDialog, se_list.Column(1) |
Как модальное окно я форму открывать не могу. :( Дело в том что содержимое форм пользователь хочет сравнивать, а если окно модально - работать с другими окнами не получится.
При событии Close результат тот же - прерывается на DoCmd.Close acForm, str С той же ошибкой. |
Так DoCmd.Close в событии закрытия нельзя вызывать =)
Удалить форму из её же кода вряд ли удастся имхо. Зачищай лишние экземпляры перед открытием нужной формы. В цикле по именам копий проверяй, открыта ли копия, если да, удаляй. А имена открытых копий можно хранить в динамическом массиве |
С защитой проблем нет.
И даже с удалением по закрытию вызывающей копии формы. Проблема в том что бы удалить копию сразу после ее закрытия. неужели это не возможно ? |
Посмотри еще _http://www.sql.ru/forum/actualthread.aspx?bid=4&tid=47734
|
| Часовой пояс GMT +4, время: 06:35. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.