Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переход на определенную запись / 16 сообщений из 16, страница 1 из 1
18.11.2009, 14:16
    #36317299
Lexx_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Добрый день!
Необходимо в наборе данных осуществить переход на i-ую запись(Access2007)

rsSklad = ConnSklad.Execute("Select * from [Лист1$] WHERE [Артикул]<>'' ORDER BY [Артикул],[Бренд]")
rsSklad.MoveFirst
Do While Not rsSklad.EOF
i=i+1
rsSklad.MoveNext
if ..... then rsSklad.???
Loop

Думал Move подойдет, но он смещает вперед на i-ое количество записей.
Спасибо.
...
Рейтинг: 0 / 0
18.11.2009, 16:31
    #36317814
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
А вопрос-то где?

Вы хотите перейти за i-тую запись?

Или вы хотите перейти на запись, в котором какое-то поле содержит какое-то значение? Тогда укажите, какое поле и какое значение? И вообще, нужны ли вам все остальные записи, или может достаточно включить нужное условие в SELECT?
...
Рейтинг: 0 / 0
18.11.2009, 17:00
    #36317906
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
А если вы хотите найти определенную запись в рекордсете, необязательно перебирать все записи, есть метод .Find
...
Рейтинг: 0 / 0
18.11.2009, 17:08
    #36317930
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub AbsolutePositionX() 
Dim rstEmployees As ADODB.Recordset 
Dim strCnn As String 
Dim strMessage As String
' Open a recordset for the Employee table 
' using a client cursor. 
strCnn = "driver={SQL Server};server=srv;" & _ 
"uid=sa;pwd=;database=pubs" 
Set rstEmployees = New ADODB.Recordset
' Use client cursor to enable AbsolutePosition property. 
rstEmployees.CursorLocation = adUseClient 
rstEmployees.Open "employee", strCnn, , , adCmdTable 
' Enumerate Recordset. 
Do While Not rstEmployees.EOF
' Display current record information. 
strMessage = "Employee: " & rstEmployees!lName & vbCr & _ 
"(record " & rstEmployees.AbsolutePosition & _ 
" of " & rstEmployees.RecordCount & ")" 
If MsgBox(strMessage, vbOKCancel) = vbCancel Then Exit Do 
rstEmployees.MoveNext 
Loop 
rstEmployees.Close 
End Sub
...
Рейтинг: 0 / 0
18.11.2009, 17:56
    #36318127
Lexx_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
...мне нужно , чтобы в определенный момент программа могла обратиться к какой-то i-той записи, где i-это номер строки в наборе данных.
Как это сделать?
...
Рейтинг: 0 / 0
18.11.2009, 17:58
    #36318133
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
AbsolutePosition ?
...
Рейтинг: 0 / 0
18.11.2009, 18:14
    #36318173
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Lexx_SQL...мне нужно , чтобы в определенный момент программа могла обратиться к какой-то i-той записи, где i-это номер строки в наборе данных.
Как это сделать?

.MoveFirst
.Move i
(или .Move i-1, если вы считаете, что первая строка у вас именно первая, а не нулевая)

AbsolutePosition не подойдет - это свойство доступно только по чтению
...
Рейтинг: 0 / 0
18.11.2009, 18:43
    #36318224
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Кстати

Lexx_SQLДумал Move подойдет, но он смещает вперед на i-ое количество записей.

Move смещает в любую сторону:

msdnMove Method (ADO)

Moves the position of the current record in a Recordset object.

recordset.Move NumRecords, Start

Parameters

NumRecords

A signed Long expression that specifies the number of records that the current record position moves.
...
Рейтинг: 0 / 0
18.11.2009, 21:19
    #36318435
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Shocker.ProAbsolutePosition не подойдет - это свойство доступно только по чтению

Почему не подойдет? Очень даже то что нужно
ТС нужно именно в этой системе координат. И навигация будет удобной:
Код: plaintext
.Move i - .AbsolutePosition
...
Рейтинг: 0 / 0
18.11.2009, 21:26
    #36318440
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Игорь ГорбоносПочему не подойдет? Очень даже то что нужно
.Move i - .AbsolutePosition
Логично.
Только топикстартер куда-то подевался
...
Рейтинг: 0 / 0
20.11.2009, 14:55
    #36322471
Lexx_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
...мне нужно , чтобы в определенный момент программа могла обратиться к какой-то i-той записи, где i-это номер строки в наборе данных.
Как это сделать?
...
Рейтинг: 0 / 0
20.11.2009, 15:03
    #36322509
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Lexx_SQL...мне нужно , чтобы в определенный момент программа могла обратиться к какой-то i-той записи, где i-это номер строки в наборе данных.
Как это сделать?Если бы речь шла про старый досовский FoxPro, то меня бы такой вопрос не удивил, но когда речь идёт про SQL, вопрос кажется странным.
Там порядок не имеет значения, нужно обращаться к конкретной записи по определенному условию, хотя бы по значению ключевого поля с помощь Where или наподобие того.
Возможно у вас какой-то особый случай.
...
Рейтинг: 0 / 0
20.11.2009, 15:44
    #36322655
Lexx_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Написано то вроде понятно, не могу понять , почему у меня делает смещение movi i только вперед
Уже поставил вид курсора
rsSklad.CursorType = adOpenDynamic ...и все равно.
Пытаюсь сделать
rsSklad.Move 3, 0
Выдает ошибку "Текущий объект не поддерживает закладки.Это связано с ограничением поставщика или выбранным видом курсора"
...
Рейтинг: 0 / 0
20.11.2009, 15:44
    #36322659
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Lexx_SQL...мне нужно , чтобы в определенный момент программа могла обратиться к какой-то i-той записи, где i-это номер строки в наборе данных.
Как это сделать?

Не надо повторять вопрос, на который вам дали ответ, если вы хотите, чтобы с вами общались дальше.
Если что-то неясно в ответах - задавайте уточняющие вопросы.
...
Рейтинг: 0 / 0
20.11.2009, 15:46
    #36322668
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
Lexx_SQL
rsSklad.CursorType = adOpenDynamic

А если попробовать KeySet?
...
Рейтинг: 0 / 0
20.11.2009, 15:52
    #36322698
Lexx_SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на определенную запись
все..нашел
с ключо rsSklad.CursorType = adOpenKeyset работает
Всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переход на определенную запись / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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