powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заполнение массива данными из рекордсета
8 сообщений из 8, страница 1 из 1
Заполнение массива данными из рекордсета
    #32767295
Ламер3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рекордсет имеет два поля и переменное число записей.
Как это все записать в массив? Объявил массив: Dim Arr() As Variant, а сама процедура как должна выглядеть?
...
Рейтинг: 0 / 0
Заполнение массива данными из рекордсета
    #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
Заполнение массива данными из рекордсета
    #32767335
Ламер3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Заполнение массива данными из рекордсета
    #32767385
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если рекордсет ADO то можно проще

dim arr as variant
arr = rst.getrows
...
Рейтинг: 0 / 0
Заполнение массива данными из рекордсета
    #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
Заполнение массива данными из рекордсета
    #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
Заполнение массива данными из рекордсета
    #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
Заполнение массива данными из рекордсета
    #32767424
Ламер3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заработало(вариант без Preserve)!
Спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Заполнение массива данными из рекордсета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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