Страницы: 1
RSS
вывод значения RECORDSET в ячейку
 
добрый день. помогите в работе с  рекордсетом

как мне извлечь из него в ячейку конкретную запись (например третью) ?
пишу так:
Код
Sheets("NARABOTKA").Range("A1") = Rs(0)

выводит первое значение, а если так:
Код
Sheets("NARABOTKA").Range("A1") = Rs(3)

ошибка
что я делаю не так ?
Изменено: brother_alex - 25.08.2018 22:14:22
 
Если память не изменяет, то без Move https://msdn.microsoft.com/en-us/library/office/ff191697.aspx так и будет на первой строке.  или в цикле перебирать с MoveNext, что в зависимости от объема может быть и долго и если вдруг надо вернуться, то ….. , или просто вывести весь на лист   ( … =CopyFromRecordset (rs)) и там уже разобраться.
По вопросам из тем форума, личку не читаю.
 
Используйте перебор строк курсором или так
Код
    RecordCount = Rs.RecordCount
    If RecordCount > 0 Then
        Arr = Rs.getrows
        Sheets("NARABOTKA").Range("A1") = Arr(0, 12)
    End If
 
doober, Ну или так, единственное, это в зависимости от базы с курсором может быть проблема, например LDAPу не до курсора. Пока MoveLast не сделал RecordCount неизвестен, ну и курсором может придется поуправлять, я про .CursorLocation    and .CursorType

Тему наверно немного подкорректировать. Всеж в ячейку не рекордсет выводится, а конкретная запись, да и скорее всего там только одно поле.
Изменено: БМВ - 25.08.2018 21:16:12
По вопросам из тем форума, личку не читаю.
 
Для этого случая  RecordCount известен.
В общем надо делать так для ADODB.Recordset
Код
 If Not Rs.EOF Then
  Arr = Rs.getrows
 End If

С DAO.Recordset  MoveFirst и перебор записей.
 
Доброе время суток.
Цитата
doober написал:
В общем надо делать так для ADODB.Recordset
Коллеги, Сергей, Михаил, вы о чём? Это
Цитата
brother_alex написал:
как мне извлечь из него в ячейку конкретную запись (например третью) ?
Порядковое положение по Recordset.MoveNext разве имеет какой-нибудь смысл в базах данных? Даже если задан порядок сортировки, то какой смысл в третьем по счёту уникальном значении поля таблицы, отсортированного по не убыванию? Сейчас научим младенца ТС плохому, потом же не расхлебаем.
brother_alex, конкретная запись таблицы в БД - это всегда определяется по первичному ключу. Пусть вчера у вас были уникальные Арбуз, Банан, Дыня.
И вы писали Дыня как третья по порядку сортировки запись. Сегодня добавился Абрикос. И что теперь Банан - это правильная выборка?
 
Андрей VG,  Андрей, вопрос был в получении конкретной записи RS. Что там, Дыня или Абрикос- не конкретизировалось.  
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
вопрос был в получении конкретной записи RS
Что-то туплю я под вечер, что тут может быть конкретного? Может ТС разъяснит...
Offtop
Ползёт напильник по стене и добирается до календаря
- Какой сегодня день?
- Четверг.
- Да, скоро осень.
 
банан в базе со временем может быть и абрикосом :)
если конкретно я хотел чтобы данными из этого рекордсета копировались в текстбоксы 1-в первый 2- во второй и т.д.
 
Цитата
brother_alex написал:
чтобы данными из этого рекордсета копировались в текстбоксы
Recordset динамическая структура, лучше её перебирать
Код
Dim i As Long
i = 0
'...
Rs.Open '....
Do Until Rs.EOF
    i = i + 1
    Me.Controls("TextBox" & CStr(i)).Text = Cstr(Rs(0).Value)
    Rs.MoveNext
Loop

Но для чего огород городить? Не проще ли в ListBox сделать вывод?
Страницы: 1
Наверх