Я пытаюсь установить значения списка со множественным выбором в MS Access , используя VBA .Индексы для значений, которые я хочу выбрать, сохраняются в таблице с именем Индекс .Я хочу получить их из таблицы, разделить их (потому что они разделяются точкой с запятой), а затем установить значения списка.Вот мой код:
Private Sub SetListBox()
Dim Indexes As String
Dim IndexArray() As String
Indexes = rsIndex!EIndex //Gets the semi-colon delimited value from 'Index' table
IndexArray = Split(Indexes, ";") //Array of strings holding the different indexes
ReDim IndexArrayLong(UBound(IArray)) As Long //Creating an array of Long with the same length as IndexArray
For i = 0 To UBound(IndexArray)
IndexArrayLong(i) = CLng(IndexArray(i)) //Converts the Strings into Longs and places them in Long Array
Me.listBox.Selected(IArrayL(i)) = True //Sets listbox values
Next
End Sub
После некоторых исследований я обнаружил, что индексы значений List Box имеют тип данных Long, поэтому я конвертирую Strings в Long.Подпрограмма успешно устанавливает значения списка, но прежде чем она дает мне
Ошибка времени выполнения: '13' Несовпадение типов
, и это подчеркивает этострока кода:
IndexArrayLong(i) = CLng(IndexArray(i))
Я не могу понять, почему я получаю ошибку или ее решение.Любые предложения приветствуются.