Определение сложных статических данных в VBA - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть проект MS Access, в котором я пытаюсь определить много статических данных, у меня есть данные для загрузки в одну очень сложную форму.

У меня есть типы настройки для этих данных:

Public Type ColumnData

    Name As String
    Width As Single
    Search As String * 1

End Type

Public Type FormData
    Form_Title As String
    View_Name As String
    Edit_Form As String
    ObjectSingular As String
    ObjectPlural As String
    Columns() As ColumnData
End Type

Есть ли способ добавить эти данные в глобальную переменную в модуле? Так же, как и с базовыми типами данных:

Public Const g_LoggedIn As Boolean = False
Public Const g_APIKey As String = "ABC123"
Public Const g_TablePrefix as String = "auyhso_"
Public Const g_Columns As Variant = Array("1", "2", "3")

Что-то вроде:

Public g_FormData as Collection
g_FormData.Add New FormData(Form_Title:="My Title", View_Name:="My View")

1 Ответ

0 голосов
/ 05 сентября 2018

Нет, этого нельзя сделать. С одной стороны, это: Public Const g_Columns As Variant = Array("1", "2", "3") уже не работает. Array() - это функция. Вы не можете иметь постоянные массивы.

VBA поддерживает в качестве констант только простые типы данных.

Вы можете использовать функцию, которая возвращает вашу константу вместо константы и принимать незначительный удар по производительности, который примет ваше приложение.

...