Всем здравствуйте. Проблема у меня с Access, но в контексте VBA. Нужно, чтобы форма запускалась только при клике по кнопке на другой форме. То есть сделать так, чтобы форма эта не запускалась, если не была нажата кнопка.
Для этого решил применить принцип геттеров и сеттров.
Но не получается.
При клике по кнопке создаю экземпляр формы и присваиваю значение True её закрытому свойству: [vba]
Код
Dim classObj As New Form_ADD classObj.checkReq = True
[/vba]
В классе этой формы написал методы: [vba]
Код
Private checkRequest As Boolean
Public Property Get checkReq() As Boolean checkReq = checkRequest End Property
Public Property Let checkReq(ByVal checkRequestValue As Boolean) checkRequest = checkRequestValue End Property
[/vba]
Ну и собственно при OnLoad делаю проверку: [vba]
Код
If checkRequest = False Then DoCmd.Close acForm, formName End If
[/vba]
Всё это в теории должно работать, но значение True не присваивается checkRequest. Соответственно форма не открывается при любых обстоятельствах.
Помогите советом. Что нужно исправить? Уже всю голову сломал.
Всем здравствуйте. Проблема у меня с Access, но в контексте VBA. Нужно, чтобы форма запускалась только при клике по кнопке на другой форме. То есть сделать так, чтобы форма эта не запускалась, если не была нажата кнопка.
Для этого решил применить принцип геттеров и сеттров.
Но не получается.
При клике по кнопке создаю экземпляр формы и присваиваю значение True её закрытому свойству: [vba]
Код
Dim classObj As New Form_ADD classObj.checkReq = True
[/vba]
В классе этой формы написал методы: [vba]
Код
Private checkRequest As Boolean
Public Property Get checkReq() As Boolean checkReq = checkRequest End Property
Public Property Let checkReq(ByVal checkRequestValue As Boolean) checkRequest = checkRequestValue End Property
[/vba]
Ну и собственно при OnLoad делаю проверку: [vba]
Код
If checkRequest = False Then DoCmd.Close acForm, formName End If
[/vba]
Всё это в теории должно работать, но значение True не присваивается checkRequest. Соответственно форма не открывается при любых обстоятельствах.
Помогите советом. Что нужно исправить? Уже всю голову сломал.Cere6ellum
А можно как-нибудь сделать универсальные гет\сет функции, если форм для контроля много? В этом отдельном модуле прописать приватные переменные для каждой формы, но методы гет и сет оставить лишь два. И чтобы они принимали аргумент, относящийся к конкретному приватному полю.
Или всё же придётся для каждого Private поля прописывать свои get/set методы?
А можно как-нибудь сделать универсальные гет\сет функции, если форм для контроля много? В этом отдельном модуле прописать приватные переменные для каждой формы, но методы гет и сет оставить лишь два. И чтобы они принимали аргумент, относящийся к конкретному приватному полю.
Или всё же придётся для каждого Private поля прописывать свои get/set методы?Cere6ellum