我有一个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")
答案 0 :(得分:1)
不,这无法完成。例如,Public Const g_Columns As Variant = Array("1", "2", "3")
已经不起作用。 Array()
是一个函数。您不能有常量数组。
VBA仅支持将简单数据类型用作常量。
您可以使用一个返回常量而不是常量的函数,并接受应用程序需要承受的次要性能。