Use this function to determine whether a dynamic array has been dimensioned. I use dynamic arrays to store small, foreign key tables locally for fast lookups. Not wanting to load all the arrays initially, I load them only when needed and only once.
I wanted to exploit the fact that the array hasn’t yet been dimensioned as the indicator to load, instead of a Boolean variable, but I ran into complications with the standard tests in VB. My function returns True if the dynamic array passed to it has yet to be ReDim’d:
Public Function IsArrayEmpty(aArray As Variant) As Boolean On Error Resume Next IsArrayEmpty = UBound(aArray) IsArrayEmpty = Err ' Error 9 (Subscript out of range)End Function
Use this test code:
Option Explicit Private Sub cmdTest_Click() Dim aDynamic() As Integer MsgBox IsArrayEmpty(aDynamic) ReDim aDynamic(8) MsgBox IsArrayEmpty(aDynamic)End Sub