在VBA中定义复杂的静态数据

时间:2018-09-05 11:10:57

标签: vba ms-access access-vba

我有一个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 :(得分:1)

不,这无法完成。例如,Public Const g_Columns As Variant = Array("1", "2", "3")已经不起作用。 Array()是一个函数。您不能有常量数组。

VBA仅支持将简单数据类型用作常量。

您可以使用一个返回常量而不是常量的函数,并接受应用程序需要承受的次要性能。