|
|
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
Bor-LА зачем фильтровать (здалась им эта бронированная комната...) в памяти итак все ну очень быстро Фильтровать... Ну привык типа. А как через getrow?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:05:11 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
Трудно советовать не зная постановки задачи (такое только на Форумах и встречается ;-) ) Например, кусок из Help ' Печатает загруженные данные. For intRecord = 0 To UBound(avarRecords, 2) Debug.Print " " & _ avarRecords(0, intRecord) & " " & _ avarRecords(1, intRecord) & ", " & _ avarRecords(2, intRecord) Next intRecord ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:10:43 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:13:52 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
так что с getrows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:27:37 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:39:11 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
Пол моему фильтер по короче будет :), Но все-равно - спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:44:45 |
|
||
|
Создание рекордсера из рекордсета
|
|||
|---|---|---|---|
|
#18+
vam911Установленный фильтр сбивает текущую запись. А если делать клон, то как я понял, сначала надо скопировать все, а потом выбрать нужное. - потеря скорости. Зато - Фильтр - это тоже потеря скорости, но, решать, безусловно, Вам. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 15:54:41 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32665115&tid=1672223]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 441ms |

| 0 / 0 |
