Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заполнение массива данными из рекордсета / 8 сообщений из 8, страница 1 из 1
03.11.2004, 17:36:40
    #32767295
Ламер3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Рекордсет имеет два поля и переменное число записей.
Как это все записать в массив? Объявил массив: Dim Arr() As Variant, а сама процедура как должна выглядеть?
...
Рейтинг: 0 / 0
03.11.2004, 17:38:51
    #32767301
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
dim x as long
x =  1 
do while not rst.eof
 arr(x, 1 ) = rst!firstfield
 arr(x, 2 ) = rst!secondfield
 x = x +  1 
 rst.movenext
loop
...
Рейтинг: 0 / 0
03.11.2004, 17:49:50
    #32767335
Ламер3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Спасибо!
...
Рейтинг: 0 / 0
03.11.2004, 18:02:27
    #32767385
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
если рекордсет ADO то можно проще

dim arr as variant
arr = rst.getrows
...
Рейтинг: 0 / 0
03.11.2004, 18:02:55
    #32767388
Ламер3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Добавил строку с изменением размерности массива:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 i =  1 
Do While Not .EOF
    ReDim Preserve Arr(i,  2 )
    Arr(i,  1 ) = rst!firstfield
    Arr(i,  2 ) = rst!secondfield
    i = i +  1 
    .MoveNext
Loop
при попытке записать вторую запись - сообщение о выходе индекса за пределы...
...
Рейтинг: 0 / 0
03.11.2004, 18:05:19
    #32767393
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Ламер3Добавил строку с изменением размерности массива:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 i =  1 
Do While Not .EOF
    ReDim Preserve Arr(i,  2 )
    Arr(i,  1 ) = rst!firstfield
    Arr(i,  2 ) = rst!secondfield
    i = i +  1 
    .MoveNext
Loop
при попытке записать вторую запись - сообщение о выходе индекса за пределы...

rst.movelast
rst.movefirst
redim arr(rst.recordcount,2)

Do While Not .EOF
ReDim Preserve Arr(i, 2)
Arr(i, 1) = rst!firstfield
Arr(i, 2) = rst!secondfield
i = i + 1
.MoveNext
Loop
...
Рейтинг: 0 / 0
03.11.2004, 18:06:01
    #32767397
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
rst.movelast
rst.movefirst
redim arr(rst.recordcount, 2 )

Do While Not .EOF
 Arr(i,  1 ) = rst!firstfield
 Arr(i,  2 ) = rst!secondfield
 i = i +  1 
 .MoveNext
Loop
...
Рейтинг: 0 / 0
03.11.2004, 18:17:57
    #32767424
Ламер3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Заполнение массива данными из рекордсета
Заработало(вариант без Preserve)!
Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заполнение массива данными из рекордсета / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]