Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка EOF 
:(
    Опции темы
Ganz
Дата 27.12.2003, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.12.2003

Репутация: нет
Всего: нет



Файл mdb подключен с помощью компонента data, сделал кнопку "пролистывания" записей:

Data1.Recordset.MoveNext
Text1.Text = Data1.Recordset.Fields(0)
Text2.Text = Data1.Recordset.Fields(1)

Когда записи кончаются, вылетает сообщение "Run time error 3021. No current record"
У компонента Data свойство EOFAction установлено в "0 - move last"
Однако ошибка упорно вылетает.
Я попытался программно определить последюю запись:

if Data1.RecordSet.EOF = false then Data1.RecordSet.MoveNext
end if
end sub

Не помогло, ошибка все равно вылетает.
Посоветуйте, что делать.
PM MAIL   Вверх
cardinal
Дата 27.12.2003, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код
Data1.Recordset.MoveNext ' переходим к след. записи
Text1.Text = Data1.Recordset.Fields(0) ' вот она
Text2.Text = Data1.Recordset.Fields(1) ' а вот запись след. за ней!

Если я не ошибаюсь, то загвоздка именно в этом. Ты передвигаешься до последней записи, а хочешь запись после нее, вот оно и не получается. Кроме того ты можешь посмотреть, что debuger показывает, на какой строке ошибка и если она происходит в этой строке
Код
Text2.Text = Data1.Recordset.Fields(1) ' а вот запись след. за ней!

то все так как я написал.
Чтобы добиться в этом случае правильного результата надо сделать что-то типа:
Код
if индекс текущий записи < кол-во записей - 2 then
  movenext
end if

Вот такое могу посоветовать. thumbs-up.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
shilnik
Дата 29.12.2003, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 22.12.2003

Репутация: нет
Всего: 1



Видимо когда ты програмно делаешь MoveNext значение свойства EOFAction не учитываются. Ессесно

Data1.Recordset.MoveNext
Text1.Text = Data1.Recordset.Fields(0) Ошибка здесь т.к. EOF=True
Text2.Text = Data1.Recordset.Fields(1)

Сделай так:
If (Data1.Recordset.PercentPosition * Data1.Recordset.RecordCount / 100) + 1 < Data1.Recordset.RecordCount Then
Data1.Recordset.MoveNext
End If
Text1.Text = Data1.Recordset.Fields(0)
Text2.Text = Data1.Recordset.Fields(1)

ЗЫ Почемуто Data1.Recordset.AbsolutePosition выдал ошибку, но Data1.Recordset.AbsolutePosition =(Data1.Recordset.PercentPosition * Data1.Recordset.RecordCount / 100) + 1



--------------------
каталог товаров qp1
PM MAIL WWW   Вверх
Black_Star
Дата 9.1.2004, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 9.9.2003
Где: Minsk

Репутация: 4
Всего: 4



Можно ишо так:
Код

Max=Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
For i=1 to Max
....
Data1.RecordSet.MoveNext
Next i

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.