Вопрос: Читаю Вашу рассылку,
считаю ее полезной и интересной.
Хотел бы с Вами проконсультироваться по
следующей проблеме.
1. Подсоединяю к БД Access 97 таблицу с MS SQL 7 через ODBC.
2. Программно создаю новый RecordSet на основе запроса
к этой таблице. имя ему RS1
3. RS1.RecordCount = 1 (неверное значение)
4. Делаю RS1.MoveLast и RS1.MoveFirst
5. RS1.RecordCount = 123 (верное значение)
Все настройки подключения таблицы и создания
RecordSet - по умолчанию.
Что я делаю не правильно ?
Как сделать, чтобы сразу при открытии RecordSet было
верное свойство RecordCount ?
Ответ: Вы все делаете правильно,
но не стоит пользоваться RecordCount, в виду его
глючной природы:) Что бы голова не болела, лучше
написать свою функцию:
'************ Code Start **********
Function КоличествоЗаписей(r As Recordset) As Long
'-----------------------------
' Определяет кол-во записей
' в объекте Recordset
'-----------------------------
' http://msa.km.ru
'-----------------------------
Dim Закладка As String
If r.Type = dbOpenTable Then
КоличествоЗаписей = r.RecordCount
Else
If r.RecordCount = 0 Then
КоличествоЗаписей = 0
Else
Закладка = r.Bookmark
r.MoveLast
КоличествоЗаписей = r.RecordCount
r.Bookmark = Закладка
End If
End If
Exit Function
End Function
'************ Code End **********