Еще раз про Split

RRRulex
Дата: 29.09.2005 16:34:03
Мне нужно вырезать данные из одного столбца, содержащего полную информацио об адресе фирмы и вставить эти данные по частям в соответствующие столбцы.
Например, столбец "adress" содержит полный адрес, который нужно раскидать по столбцам "Индекс", "Город", "Адрес".
Я использую следующее:

Private Sub rez()
Dim rst As DAO.Recordset
Dim arrA() As String
Set rst = CurrentDb.OpenRecordset("SuperTable", dbOpenTable)

Do While Not rst.EOF

arrA = Split(rst![adress], ",")
rst.Edit
rst![Индекс] = arrA(0)
rst![Город] = arrA(1)
rst![Адрес] = arrA(2) + arrA(3) + arrA(4) + arrA(5)
rst.Update
rst.MoveNext
Loop
MsgBox "Можете приступать к дальнейшим работам!"
End Sub


Это хорошо работает, когда полный адрес содержит максимальное число элементов после запятой, но как только встречаются данные содержащие число элементов к примеру arrA(2), то программа ругается "...out of range".

Подскажите, как быть дальше? Как определить конечность массива?
AlTis
Дата: 29.09.2005 16:36:02
for i=1 to ubound(arrA)

next i
Тяп-ляп
Дата: 29.09.2005 16:39:22
UBound Function

Returns a Long containing the largest available subscript for the indicated dimension of an array.

Syntax

UBound(arrayname[, dimension])

The UBound function syntax has these parts:

Part Description
arrayname Required. Name of the array variable; follows standard variable naming conventions.
dimension Optional; Variant (Long). Whole number indicating which dimension's upper bound is returned. Use 1 for the first dimension, 2 for the second, and so on. If dimension is omitted, 1 is assumed.

Remarks

The UBound function is used with the LBound function to determine the size of an array. Use the LBound function to find the lower limit of an array dimension.

UBound returns the following values for an array with these dimensions:

Dim A(1 To 100, 0 To 3, -3 To 4)

Statement Return Value
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4