powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Про цикл рекордсетов
4 сообщений из 4, страница 1 из 1
Про цикл рекордсетов
    #35093987
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создаю в коде рекордсеты

Код: plaintext
1.
2.
dim rcd1 as new adodb.recordset
dim rcd2 as new adodb.recordset
dim rcd3 as new adodb.recordset

подскажите, как в цикле по ним пробежаться. т.е. из каждого надо взять recordcount.

пыталась:

Код: plaintext
1.
2.
3.
4.
5.
6.
for i= 1  to  3 
a=controls("rcd" & i).recordcount - не работает

еще так:

a = CallByName(Me, "rcd" & i, Vbget).RecordCount - тоже не работает.
next i

Заранее спасибо
...
Рейтинг: 0 / 0
Про цикл рекордсетов
    #35094020
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробежаться циклом по переменным невозможно.
Выход такой:
Код: plaintext
1.
2.
3.
dim rcd( 1  to  3 ) As adodb.recordset
For x =  1  to  3  
    Set rcd(x) = New ADODB.Recordset
Next
...
Рейтинг: 0 / 0
Про цикл рекордсетов
    #35094123
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim rcd1 As New ADODB.Recordset
Dim rcd2 As New ADODB.Recordset
Dim rcd3 As New ADODB.Recordset

'Стандартное решение:
Dim rsArr() As ADODB.Recordset

Private Sub Form_Initialize()
   ReDim rsArr( 1  To  3 )
   Set rsArr( 1 ) = rcd1
   Set rsArr( 2 ) = rcd2
   Set rsArr( 3 ) = rcd2
End Sub

Sub a()
   Dim i As Long, n As Long
   For i =  1  To  3 
      if rsArr(i).State = Adstateopen then n = n + rsArr(i).RecordCount
   Next
End Sub
Некрасивое и нехорошее решение:
Код: plaintext
1.
2.
3.
4.
5.
6.
public rcd1 as new adodb.recordset
public rcd2 as new adodb.recordset
public rcd3 as new adodb.recordset
'..
'..
a = CallByName(Me, "rcd" & i, Vbget).RecordCount 
'..
Нехорошее потому что программист вынужден соблюдать слишком жесткое соглашение об именовании переменных. А если кто-то другой работающий с вашим кодом добавит еще одну переменную rcd2_2? Или решит переименовать эти рекорсдеты во что-то внятное rsWares, rsProducts. Ваш код должен допускать возможность переименования переменных и не должен падать от этого.
...
Рейтинг: 0 / 0
Про цикл рекордсетов
    #35106788
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька
решается твоя проблема или проверкой на EOF для рекодсета в цикле DO while
или Rs.MoveNext(последняя запись) взять recordcount и Rs.MoveFirst вернутся на начало если нужно при условии что рекордсет не пустой
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Про цикл рекордсетов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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