Объявите переменную в Access Form Sub для использования несколько раз - PullRequest
0 голосов
/ 06 января 2019

Я хочу объявить публичную (?) Переменную при загрузке пользовательской формы Access и повторно использовать эти переменные несколько раз. У меня есть несколько подпрограмм AfterUpdate, которые работают и используют общую переменную, которую я определяю в коде VBA. Я знаю, что могу определить переменную в подпрограмме, а затем вызвать эту подпрограмму в подпрограммах AfterUpdate, но я не хочу, чтобы половина моего кода просто снова вызывала те же подпрограммы и хотела бы сделать ее чище.

Я пытался выяснить метод Public / Global Variable, но не могу понять, насколько я понимаю.

Ниже приведен простой пример, где есть четыре текстовых поля с именами A, B, C и D, и я хочу, чтобы переменная и сообщение об ошибке были переменными, которые являются константами всякий раз, когда загружается эта форма.

Option Compare Database

'declare constant variables
Public var as String
Public error_message as String
var=5
error_message="input a lower value"

Private Sub A_AfterUpdate()
If A.Value > var Then
    MsgBox error_message
End If
End Sub

Private Sub B_AfterUpdate()
If B.Value > var Then
    MsgBox error_message
End If
End Sub

Private Sub C_AfterUpdate()
If C.Value > var Then
    MsgBox error_message
End If
End Sub

Private Sub D_AfterUpdate()
If D.Value > var Then
    MsgBox error_message
End If
End Sub

Как я могу изменить этот формат, чтобы он работал ?. Опять же, я знаю, что могу вызвать Sub, где переменная определена, и вернуть его, но я бы не стал делать это для каждого AfterUpdate.

Спасибо.

1 Ответ

0 голосов
/ 06 января 2019
  1. Вы правы - звучит так, будто вы хотите "глобальную переменную"

  2. Вы также правы - способ, которым вы делаете это:

    a) определить переменную OUTSIDE подпрограммы или функции.

    b) Отметьте переменную "Public".

  3. Вы, вероятно, не хотите называть свои переменные "var" (или "A", "B" или "C"), если вы можете избежать этого. Я предполагаю, что это были просто "примеры".

  4. Обычно создается новый отдельный модуль VBA только для глобалов. Здесь вы можете определить переменную «Global».

  5. Я также хотел бы добавить «Option Explicit» во все мои модули.

Вам также может быть интересна эта ссылка:

VBA: В чем разница между Dim, Global, Public и Private в качестве модификаторов модульного доступа к полю?

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