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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество записей в рекордсете, Проблема при создании рекордсета 
:(
    Опции темы
Aq1982
  Дата 21.4.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. Еще одна проблема. Я в программе открываю рекордсет с помощью SQL -запроса (база MDB сделано в DAO). от так:
Код

z = "select copies.* from copies where itemid=" + Str(i)
Data1.RecordSource = z
Data1.Refresh
Debug.Print z
Set rs2 = Data1.Recordset
Debug.Print rs2.RecordCount


и recordCount мне возвращает, что в рекордсете одна запись, хотя я точно знаю что это не так. Добавляю на форму DBGrid с RecordSourse = Data1 все начинает работать. Удаляю - перестает.
Кто-нибуть мне может объяснить почему и как это обойти?
PM MAIL   Вверх
Aq1982
Дата 25.4.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Разобрался!
интересная вещь: если открыть рекорсет вот так:
Код

Set db = OpenDatabase(path)

Set rs = db.TableDefs(1).OpenRecordset

то свойство RecordCount рекорсета вернет верное количество записей. Но если, упоси господи, вы хотите не все поля а только отбранные по запросу, те так:
Код

Set rs = db.OpenRecordset("select * from copies where time <#" + Str(Time) + "#")

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

k = 0
Do Until rs.EOF
k = k + 1
rs.MoveNext
Loop

Может кому это может..... А может кто объяснит что не так со свойством RecordCount?
PM MAIL   Вверх
Akina
Дата 25.4.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20580
Регистрация: 8.4.2004
Где: Зеленоград

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



Хелпы читать умеем?

Цитата
Use the RecordCount property to find out how many records in a Recordset or TableDef object have been accessed. The RecordCount property doesn't indicate how many records are contained in a dynaset-, snapshot-, or forward-only–type Recordset object until all records have been accessed. Once the last record has been accessed, the RecordCount property indicates the total number of undeleted records in the Recordset or TableDef object. To force the last record to be accessed, use the MoveLast method on the Recordset object. You can also use an SQL Count function to determine the approximate number of records your query will return.


так что

Код

z = "select copies.* from copies where itemid=" + Str(i)
Data1.RecordSource = z
Data1.Refresh
Debug.Print z
Set rs2 = Data1.Recordset
rs2.MoveLast '!!!!!!!!!!!!!!!!!!!!!!
Debug.Print rs2.RecordCount



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

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

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

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

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

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


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

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


 




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


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

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