Part | Description | |
Public | Optional. Used to declare user-defined types that are available to all procedures in all modules in all projects. | |
Private | Optional. Used to declare user-defined types that are available only within the module where the declaration is made. | |
varname | Required. Name of the user-defined type; follows standard variable naming conventions. | |
elementname | Required. Name of an element of the user-defined type. Element names also follow standard variable naming conventions, except that keywords can be used. | |
subscripts | Optional. Dimensions of an array element. Use only parentheses when declaring an array whose size can change. The subscripts argument uses the following syntax: | |
[lower To] upper [,[lower To] upper] . . . | ||
When not explicitly stated in lower, the lower bound of an array is controlled by the Option Base statement. The lower bound is zero if no Option Base statement is present. | ||
type | Required. Data type of the element; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported), Date, String(for variable-length strings), String * length (for fixed-length strings), Object, Variant, another user-defined type, or an object type. |
Type StateData
CityCode (1 To 100) As Integer ' Declare a static array.
County As String * 30
End Type
Dim Washington(1 To 100) As StateData
In the preceding example, StateData includes the CityCode static array, and the record Washington has the same structure as StateData.
When you declare a fixed-size array within a user-defined type, its dimensions must be declared with numeric literals or constants rather than variables.
The setting of the Option Base statement determines the lower bound for arrays within user-defined types.
See Also
Data type summary, Dim statement, Option Base statement, Private statement, Public statement, ReDim statement, Static statement.
Specifics (Microsoft Access)
In Microsoft Access, user-defined types are public by default. You cannot define a public user-defined type within a class module. To declare a user-defined type within a class module, precede the Type statement with the Private keyword. If you fail to include the Private keyword, Microsoft Access generates a compile-time error.
Example
This example uses the Type statement to define a user-defined data type. The Type statement is used at the module level only. If it appears in a class module, a Type statement must be preceded by the keyword Private.
Type EmployeeRecord ' Create user-defined type.
ID As Integer ' Define elements of data type.
Name As String * 20
Address As String * 30
Phone As Long
HireDate As Date
End Type
Sub CreateRecord()
Dim MyRecord As EmployeeRecord ' Declare variable.
' Assignment to EmployeeRecord variable must occur in a procedure.
MyRecord.ID = 12003 ' Assign a value to an element.
End Sub