Глобальная переменная MS Access - PullRequest
0 голосов
/ 14 марта 2019

У меня есть одна глобальная переменная, которая проверяет, когда форма заполнена, и я не могу приступить к работе. Я попытался просто установить его в модуле, но, похоже, он не работает. Я слишком усложнил это, поместив это в Модуль ..

    Option Compare Database

Public ChangeFlag As Boolean

Public Function SetFlagTrue()
ChangeFlag = True
End Function

Public Function SetFlagFalse()
ChangeFlag = False
End Function

Public Function GetFlag() As Boolean
GetFlag = ChangeFlag
End Function

Я подумал, что, поскольку это не работает, передавая значение вперед и назад, я мог бы вызвать функцию, чтобы изменить его, а затем вызвать GetFlag. Все еще не работает.

Я пытался использовать Call SetFlagTrue, но я получаю сообщение об ошибке и при попытке изменить значение. Здесь я ссылаюсь на функцию GetFlag, но она не работает.

If (GetFlag = True) Then
MsgBox ("Data already entered for today, use Edit button")
End If

If (GetFlag = False) Then...

Не думаю, что они тоже работают.

1 Ответ

0 голосов
/ 15 марта 2019

Вы должны использовать свойство вместо функций

Option Compare Database
Option Explicit

Private DataEntered As Boolean

Public Property Get FormHasData() As Boolean
  FormHasData = DataEntered
End Property

Public Property Let FormHasData(ByVal HasData As Boolean)
  DataEntered = HasData
End Property

Private Sub TestFormHasData
  FormHasData = True
  Debug.Print FormHasData
  FormHasData = False
  Debug.Print FormHasData
End Sub

Если для DataEnterd установлено значение private, доступ к нему может получить только его Getter / Letter.Свойство имеет преимущество только одного идентификатора для этой задачи.Теперь вы можете сделать Письмо частным, чтобы предотвратить изменения извне модуля, или сделать Getter частным, чтобы предотвратить доступ к нему извне.

Это разница в вашем коде, где ChangeFlag может быть получен изво всем мире.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...