powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кол-во записей в рекорсете
13 сообщений из 13, страница 1 из 1
Кол-во записей в рекорсете
    #32208169
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ADP 2000
Открываю из проекта таблицу из внешнего mdb-файла, как

ExportDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\EXPORT.mdb"
rstDemandImport.Open "SELECT * FROM E_Demands", ExportDB, adOpenDynamic, adLockOptimistic

rstDemandImport.MoveLast
If rstDemandImport.EOF = True Then
countDemandOfCust = rstDemandImport.RecordCount
End If

countDemandOfCust = 0

записи в таблице есть точно.

Может я как-то коннект неверно прописываю ?
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208177
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А почему = True???
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208179
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
If the Recordset object supports approximate positioning or bookmarks—that is, 
Supports (adApproxPosition) or Supports (adBookmark), respectively, return True—
this value will be the exact number of records in the Recordset, regardless of 
whether it has been fully populated. If the Recordset object does not support 
approximate positioning, this property may be a significant drain on resources 
because all records will have to be retrieved and counted to return an accurate 
RecordCount value.

The cursor type of the Recordset object affects whether the number of records 
can be determined. The RecordCount property will return - 1  for a forward-only 
cursor; the actual count for a static or keyset cursor; and either - 1  or the actual 
count for a dynamic cursor, depending on the data source.


По-русски: не каждый тип курсора и не каждый провайдер данных поддерживает свойство RecordCount.
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208183
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прям болезнь какая-то писать =True и =False
где только понахватались такого.
может FAQ-ом их задавить? :)
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208184
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Senin Viktor:

У него так написан иф, что программа в него не заходит.
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208185
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно напарил с True
Но все равно .RecorCount = -1 :((
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208190
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче сдела я так
rstDemandImport.Open "SELECT * FROM E_Demands", ExportDB, adOpenStatic

и тогда записи считаются

а за True уж извиняйте :))
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208195
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ExportDB.Open  "Provider=Microsoft.Jet.OLEDB.4 . 0 ;Data Source=C:\EXPORT.mdb" 
rstDemandImport.Open  "SELECT * FROM E_Demands" , ExportDB, adOpenDynamic, adLockOptimistic 
If rstDemandImport.EOF and  rstDemandImport.BOF Then 
     countDemandOfCust =  0  
else
    rstDemandImport.MoveLast 
    countDemandOfCust = rstDemandImport.RecordCount 
End If 
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208214
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Действительно напарил с True
>Но все равно .RecorCount = -1 :((

тогда см. мой топик

но не лучше в твоем случае сделать Select Count(*) From ... Where...
и наслаждать результатом
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208253
Чумаков А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 VIG
Сначала так и было, но возращало -1
стало работать только с adOpenStatic
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208278
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2VIG
>rstDemandImport.MoveLast
>countDemandOfCust = rstDemandImport.RecordCount

В ADO далать переход на последнюю запись вроде и не к чему.
Рекодсет или поддерживает RecordCount и вернет верное значение без MoveLast или не поддерживает и вернет -1.

2Чумаков А.
все-таки глупо тащить все записи, чтобы подсчитать их кол-во на клиенте.
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208319
DLM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DLM
Гость
Может я конечно не прав, но вот например работает и так:


Set rst = mydb.OpenRecordset("select count(ID_SIM) as SimsNumber from sims")
Me.SimsNumber.Caption = rst!SimsNumber
rst.Close
...
Рейтинг: 0 / 0
Кол-во записей в рекорсете
    #32208352
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Чумаков
Если установлено свойство CursorLocation = adUseClient, то работает одинаково.
>rstDemandImport.MoveLast
>countDemandOfCust = rstDemandImport.RecordCount

В ADO далать переход на последнюю запись вроде и не к чему.
Рекодсет или поддерживает RecordCount и вернет верное значение без MoveLast или не поддерживает и вернет -1.

Согласен ,подвел метод Past & Copy

все-таки глупо тащить все записи, чтобы подсчитать их кол-во на клиенте .
Если надо только получить к-во записей -согласен .Select Count(*) From ... Where... гораздо лучше.А если нет?
А цикл
dim iCnt
icnt=rs.recordcount
for i=1 to icnt
......
next i
работает намного быстрее чем
do until .eof (do while not .eof)
.....
loop
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кол-во записей в рекорсете
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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