powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание рекордсера из рекордсета
7 сообщений из 32, страница 2 из 2
Создание рекордсера из рекордсета
    #32664982
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bor-LА зачем фильтровать (здалась им эта бронированная комната...) в памяти итак все ну очень быстро

Фильтровать... Ну привык типа.
А как через getrow??
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665005
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Трудно советовать не зная постановки задачи (такое только на Форумах и встречается ;-) ) Например, кусок из Help
' Печатает загруженные данные.
For intRecord = 0 To UBound(avarRecords, 2)
Debug.Print " " & _
avarRecords(0, intRecord) & " " & _
avarRecords(1, intRecord) & ", " & _
avarRecords(2, intRecord)
Next intRecord
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665013
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bor-LТрудно советовать не зная постановки задачи (такое только на Форумах и встречается ;-) ) Например, кусок из Help
' Печатает загруженные данные.
For intRecord = 0 To UBound(avarRecords, 2)
Debug.Print " " & _
avarRecords(0, intRecord) & " " & _
avarRecords(1, intRecord) & ", " & _
avarRecords(2, intRecord)
Next intRecordА где здесь Getrecords и что такое avarRecords
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665048
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что с getrows?
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665079
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vam911так что с getrows?

Ну если у Вас нет русского Help-a привожу МЕТОД GETROWS - ПРИМЕР целиком

Следующая программа использует метод GetRows для загрузки указанного числа строк из объекта Recordset и заполнения массива полученными данными. Метод GetRows возвращает менее указанного числа строк в двух случаях: при обнаружения метки конца файла EOF или при попытке загрузки записи, удаленной другим пользователем. Функция возвращает False только в последнем случае. Для выполнения этой процедуры требуется функция GetRowsOK.

Sub GetRowsX()

Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim strMessage As String
Dim intRows As Integer
Dim avarRecords As Variant
Dim intRecord As Integer

Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set rstEmployees = dbsNorthwind.OpenRecordset( _
"SELECT Имя, Фамилия, Должность " & _
"FROM Сотрудники ORDER BY Фамилия", dbOpenSnapshot)

With rstEmployees
Do While True
' Принимает от пользователя число строк.

strMessage = "Введите число загружаемых строк."
intRows = Val(InputBox(strMessage))

If intRows <= 0 Then Exit Do

' При успешном выполнении GetRowsOK печатает результаты;
' при обнаружении конца файла ничего не делается.
If GetRowsOK(rstEmployees, intRows, _
avarRecords) Then
If intRows > UBound(avarRecords, 2) + 1 Then
Debug.Print "(Недостаточно записей в объекте " & _
"Recordset для загрузки " & intRows & _

" строк.)"
End If
Debug.Print UBound(avarRecords, 2) + 1 & _
" записей обнаружено."

' Печатает загруженные данные.
For intRecord = 0 To UBound(avarRecords, 2)
Debug.Print " " & _
avarRecords(0, intRecord) & " " & _
avarRecords(1, intRecord) & ", " & _
avarRecords(2, intRecord)
Next intRecord
Else
' В предположении, что GetRows возвращает ошибку

' из-за изменения данных другим пользователем,
' вызывает метод Requery для обновления
' объекта Recordset и возобновления операции.
If .Restartable Then
If MsgBox("Ошибка в методе GetRows. Повторить?", _
vbYesNo) = vbYes Then
.Requery
Else
Debug.Print "Ошибка в методе GetRows!"
Exit Do
End If
Else
Debug.Print "Ошибка в методе GetRows! " & _

"Неверное значение свойства Restartable!"
Exit Do
End If
End If

' Так как после вызова GetRows указатель текущей записи
' остается на последней проверенной записи, переводит
' указатель в начало объекта Recordset перед
' выполнением нового цикла поиска.
.MoveFirst
Loop
End With

rstEmployees.Close
dbsNorthwind.Close

End Sub

Function GetRowsOK(rstTemp As Recordset, _
intNumber As Integer, avarData As Variant) As Boolean

' Сохраняет результаты вызова GetRows в массиве.
avarData = rstTemp.GetRows(intNumber)
' Возвращает False, только если возвращено менее указанного
' количества строк, но не при достижении конца объекта
' Recordset.
If intNumber > UBound(avarData, 2) + 1 And _
Not rstTemp.EOF Then
GetRowsOK = False
Else
GetRowsOK = True
End If

End Function
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665097
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пол моему фильтер по короче будет :), Но все-равно - спасибо.
...
Рейтинг: 0 / 0
Создание рекордсера из рекордсета
    #32665115
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vam911Установленный фильтр сбивает текущую запись.

А если делать клон, то как я понял, сначала надо скопировать все, а потом выбрать нужное. - потеря скорости.

Зато - Фильтр - это тоже потеря скорости, но, решать, безусловно, Вам. Удачи
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание рекордсера из рекордсета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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