summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wizards/source/access2base/UtilProperty.xba15
1 files changed, 11 insertions, 4 deletions
diff --git a/wizards/source/access2base/UtilProperty.xba b/wizards/source/access2base/UtilProperty.xba
index 88c8aa9bc756..e17b10374441 100644
--- a/wizards/source/access2base/UtilProperty.xba
+++ b/wizards/source/access2base/UtilProperty.xba
@@ -217,8 +217,10 @@ Dim cstLF As String
Case < vbArray ' Scalar
sResult = sResult & sName & " = " & Utils._CStr(vValue, False) & cstLF
Case Else ' Vector or matrix
+ If uBound(vValue, 1) < 0 Then
+ sResult = sResult & sName & " = (0)" & cstLF
' 1-dimension but vector of vectors must also be considered
- If VarType(vValue(0)) >= vbArray Then
+ ElseIf VarType(vValue(0)) >= vbArray Then
sResult = sResult & sName & " = (" & UBound(vValue) + 1 & "," & UBound(vValue(0)) + 1 & ")" & cstLF
For j = 0 To UBound(vValue)
sResult = sResult & Utils._CStr(vValue(j), False) & cstLF
@@ -263,19 +265,24 @@ Const cstEqualArray = " = (", cstEqual = " = "
If InStr(vString(i), cstEqualArray) = lPosition + Len(sName) Then ' Start array processing
lSearch = lPosition + Len(sName) + Len(cstEqualArray) - 1
sDim = Utils._RegexSearch(vString(i), "\([0-9]+\)", lSearch) ' e.g. (10)
- If sDim <> "" Then
+ If sDim = "(0)" Then ' Empty array
+ iRows = -1
+ vValue = Array()
+ _SetPropertyValue(vResult, sName, vValue)
+ ElseIf sDim <> "" Then ' Vector with content
iCols = CInt(Mid(sDim, 2, Len(sDim) - 2))
iRows = 0
ReDim vValue(0 To iCols - 1)
- Else
+ iArray = 0
+ Else ' Matrix with content
lSearch = lPosition + Len(sName) + Len(cstEqualArray) - 1
sDim = Utils._RegexSearch(vString(i), "\([0-9]+,", lSearch) ' e.g. (10,
iRows = CInt(Mid(sDim, 2, Len(sDim) - 2))
sDim = Utils._RegexSearch(vString(i), ",[0-9]+\)", lSearch) ' e.g. ,20)
iCols = CInt(Mid(sDim, 2, Len(sDim) - 2))
ReDim vValue(0 To iRows - 1)
+ iArray = 0
End If
- iArray = 0
ElseIf InStr(vString(i), cstEqual) = lPosition + Len(sName) Then
vValue = Utils._CVar(Mid(vString(i), Len(sName) + Len(cstEqual) + 1))
_SetPropertyValue(vResult, sName, vValue)