Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2018, 09:26   #1
islan
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 10
По умолчанию Имя вызывающей формы при открытии новой формы в Access

Всем, Здравствуйте!
Я хочу иметь возможность вызывать некую форму FrmX из других разных форм приложения, при этом при открытии определять имя формы, откуда вызывается эта FrmX. FrmX не является подформой. Выражение в процедуре открытия me.Parent.name вызывает ошибку: "Введенное выражение содержит недопустимую ссылку на свойство Parent".
Пожалуйста, подскажите решение.
islan вне форума Ответить с цитированием
Старый 11.12.2018, 15:44   #2
Eugene-LS
Пользователь
 
Аватар для Eugene-LS
 
Регистрация: 23.02.2018
Сообщений: 78
По умолчанию

Цитата:
Сообщение от islan Посмотреть сообщение
Всем, Здравствуйте!
Я хочу иметь возможность вызывать некую форму FrmX из других разных форм приложения, при этом при открытии определять имя формы, откуда вызывается эта FrmX. FrmX не является подформой. Выражение в процедуре открытия me.Parent.name вызывает ошибку: "Введенное выражение содержит недопустимую ссылку на свойство Parent".
Пожалуйста, подскажите решение.
Parent вам тут не поможет.
Это обращение к главному объекту из подчиненного.

Простейший способ использовать свойство TAG формы:
Код:
'Открытие
     DoCmd.OpenForm "Test_New", acNormal
     'Задаём значение TAG
     Forms("Test_New").Tag = Me.Name
     DoCmd.Close acForm, Me.Name
Обратно:
Код:
'Закрытие
    Dim s As String
    s = Me.Tag
    DoCmd.Close acForm, Me.Name
    If s <> "" Then
        DoCmd.OpenForm s, acNormal
    End If
Eugene-LS вне форума Ответить с цитированием
Старый 12.12.2018, 09:14   #3
islan
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Eugene-LS Посмотреть сообщение
TAG формы:
Код:
'Открытие
     DoCmd.OpenForm "Test_New", acNormal
     'Задаём значение TAG
     Forms("Test_New").Tag = Me.Name
     DoCmd.Close acForm, Me.Name
Это не совсем то, что нужно. Ведь заполнение TAG происходит после открытия формы. После команды
DoCmd.OpenForm "Test_New", acNormal
в процедуре Form_Open, куда сразу же передастся управление, этот TAG еще не будет установлен и, соответственно, я также не смогу узнать из какой формы было обращение.
islan вне форума Ответить с цитированием
Старый 12.12.2018, 14:54   #4
Eugene-LS
Пользователь
 
Аватар для Eugene-LS
 
Регистрация: 23.02.2018
Сообщений: 78
По умолчанию

Цитата:
Сообщение от islan Посмотреть сообщение
Это не совсем то, что нужно. Ведь заполнение TAG происходит после открытия формы. После команды
DoCmd.OpenForm "Test_New", acNormal
в процедуре Form_Open, куда сразу же передастся управление, этот TAG еще не будет установлен и, соответственно, я также не смогу узнать из какой формы было обращение.
Не совсем вас понял.
Ну да ладно.
Тогда заводите публичную переменную для этой формы и пишите туда "обратный адрес".

Можно вообще организовать "хлебные крошки" на уровне приложения, но думаю, что это излишнее усложнение.
Eugene-LS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access 2010 Ошибка при открытии отчета кнопкой с формы Cap7 Microsoft Office Access 9 25.10.2016 08:13
RecordClone при открытии формы carry-y Microsoft Office Access 5 05.07.2013 13:36
Музыка при открытии формы dimok5 Мультимедиа в Delphi 6 11.06.2011 16:09
Фильтр при открытии формы St_Student Microsoft Office Access 1 25.10.2010 15:09
Максимизация формы при открытии SerArtur Microsoft Office Access 1 13.11.2008 15:00