Свойство видимости сбрасывается после выхода из подпрограммы Load() (MS-ACCESS 03, 07, 10)

У меня есть форма, которая открывается при запуске (frmStart). Эта форма имеет некоторый код в методе Load, который решает, должен ли пользователь видеть панель управления (администраторы) или альтернативную форму (обычные пользователи).

Я хочу оставить "frmStart" открытым после принятия решения, но я хочу, чтобы он исчез. Я прошел через код и использовал непосредственное окно, чтобы узнать, что frmStart.Visible = False. Однако после команды «выход из подпрограммы» frmStart.Visible снова = True.

Я не уверен, что вызывает сброс свойства, но мне бы очень хотелось скрыть уродливую форму «frmStart». У кого-нибудь есть предложения?

Заранее благодарим за любую помощь, которую вы можете оказать.


person misterManager    schedule 10.08.2011    source источник
comment
Вы установили POPUP свойств MODAL этой формы? Если это так, установите их обратно в FALSE. Я ожидаю, что свойство POPUP мешает вашей настройке видимости.   -  person David-W-Fenton    schedule 11.08.2011
comment
Извините, я должен был быть яснее. Это мой первый раз, когда я не могу найти что-то в Google! Я никогда раньше ничего здесь не спрашивал. Я отредактирую вопрос, чтобы он имел больше смысла для людей с похожими проблемами. Но я обнаружил, что (по крайней мере, из того, что я понимаю сейчас), вы не можете установить свойство visible формы в ее собственной подпрограмме Open или Load. Большое спасибо за советы и комментарии.   -  person misterManager    schedule 11.08.2011
comment
Да, вы можете установить свойство Visible формы в событиях OnOpen и OnLoad формы. Я делаю это все время. Я все еще предполагаю, что для свойства POPUP установлено значение True.   -  person David-W-Fenton    schedule 14.08.2011


Ответы (1)


Итак, вы пытаетесь заставить форму исчезнуть, как только желаемое условие станет истинным, или вы пытаетесь предотвратить появление формы до того, как вы до нее доберетесь? Если первое верно, вы, возможно, захотите переписать свою логику, чтобы событие Form_Open не запускалось в первую очередь (поэтому форма не вызывается) и на практике было бы Visible = False.

Если последнее верно, то вы ошибаетесь из-за того, что подпрограмма Form_Open даже вызывается, поскольку вызов был сделан для открытия формы. Просмотрите свою логику перед этим событием, чтобы убедиться, что условия выполнены, и вызвать альтернативную форму.

Заранее извините за расплывчатый совет, вы не предоставили более структурированную информацию, поэтому я пытаюсь быть «настолько правильным, насколько могу».

person Comrad_Durandal    schedule 10.08.2011
comment
Я пытаюсь заполнить два текстовых поля в форме, открыть другую форму в зависимости от разрешений пользователя, а затем я просто хочу скрыть всплывающую форму. Что бы ни случилось, к концу всплывающая форма должна исчезнуть (но остаться «открытой»). Я постараюсь разобраться с некоторыми из вещей, которые вы упомянули. Большое спасибо. - person misterManager; 10.08.2011
comment
Мне удалось переместить код в подраздел «Активировать», и, похоже, он работает. В любом случае, там гораздо больше смысла. Большое спасибо за Вашу помощь - person misterManager; 10.08.2011