Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с recordset в VBA! / 15 сообщений из 15, страница 1 из 1
06.06.2016, 15:07
    #39251279
skiminok65
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
Открываю recordset по всем правилам. В нем должно быть несколько полей, а получается только одно!!!! Уже голову сломал.....

код:

dim rst as DAO.Recordset
dim strSQL as String

strSQL = "SELECT table.FirstName FROM table WHERE table.ID > 3"
set str = CurrentDB.OpenRecordset(strSQL, dbOpenDynaset)
Debug.Print rst.Recordcount
set rst = Nothing

Результат rst.Recordset всегда =1
...
Рейтинг: 0 / 0
06.06.2016, 15:09
    #39251284
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
skiminok65Открываю recordset по всем правилам. В нем должно быть несколько полей, а получается только одно!!!! Уже голову сломал.....

код:

dim rst as DAO.Recordset
dim strSQL as String

strSQL = "SELECT table.FirstName FROM table WHERE table.ID > 3"
set str = CurrentDB.OpenRecordset(strSQL, dbOpenDynaset)
Debug.Print rst.Recordcount
set rst = Nothing

Результат rst.Recordset всегда =1
Я чего то не понял:
Debug.Print rst.Recordcount
или
rst.Recordset всегда =1
Где вы видите поля?
...
Рейтинг: 0 / 0
06.06.2016, 15:11
    #39251287
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
Свойство RecordCount вернёт правильное значение только после .MoveLast. И то не 100% гарантии.
...
Рейтинг: 0 / 0
06.06.2016, 15:12
    #39251288
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
ROIГде вы видите поля?Да он не различает поля и записи походу...
...
Рейтинг: 0 / 0
06.06.2016, 15:13
    #39251290
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
AkinaСвойство RecordCount вернёт правильное значение только после .MoveLast. И то не 100% гарантии.
Дык вернется количество записей
А количество полей- не (это не так делается).
...
Рейтинг: 0 / 0
06.06.2016, 15:15
    #39251294
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
1. Полей или все же записей?

2. Опечатка?
dim rst as DAO.Recordset
set str = CurrentDB.OpenRecordset(strSQL, dbOpenDynaset)

3.
Для определения количества записей рекордсета его нужно сначала заполнить
rst.MoveLast
MsgBox rst.RecordCount
...
Рейтинг: 0 / 0
06.06.2016, 15:30
    #39251305
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
skiminok65,

Тс вы где?
Вы чего вообще то имели в виду.
Народ волнуется!
...
Рейтинг: 0 / 0
06.06.2016, 15:34
    #39251310
skiminok65
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
Akina,
Спасибо. Работает.
...
Рейтинг: 0 / 0
06.06.2016, 16:20
    #39251357
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
AkinaИ то не 100% гарантии.

А что, действительно бывали случаи? Ну если только в нагруженной многопользовательской среде за это время кто-то другой успеет поменять число строк.
...
Рейтинг: 0 / 0
06.06.2016, 16:41
    #39251376
Помогите с recordset в VBA!
MrShin,

Акина жути нагоняет для порядку :)

в DAO - 100%.

в ADO - с оговорками с чужих слов типа:
use a static or keyset cursor to return the actual record count.но практически не знаю. Не использую ADO.
.
...
Рейтинг: 0 / 0
06.06.2016, 16:59
    #39251398
Помогите с recordset в VBA!
MrShin,

тыкни для антересу
Вполне достоверные источники в выдаче. В т.ч. и наш :)
.
...
Рейтинг: 0 / 0
06.06.2016, 18:03
    #39251445
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
MrShinА что, действительно бывали случаи? Ну если только в нагруженной многопользовательской среде за это время кто-то другой успеет поменять число строк.Почему обязательно "число строк"? Достаточно изменить значение любого поля, чтобы при этом изменилась "отбираемость" записи по фильтру запроса.
Впрочем, если получить именно точное количество записей - критично, то методы для его получения должны быть другими... и использование чуть ли не немедленное...
капча-грузовики-я-не-роботв DAO - 100%.
Сценарий.

Клиент открывает рекордсет.
Клиент делает мув ласт.
Другой клиент удаляет запись.
Клиент запрашивает рекорд каунт...
...
Рейтинг: 0 / 0
06.06.2016, 19:33
    #39251501
Помогите с recordset в VBA!
Akina,

я же говорю - жути нагоняешь :)

Я в матчасть глыбоко не погружался, потому, чисто поверхностно, по колхозно-крестьянски:

Давай отличать достоверность RecordCount системную, архитектурную от привнесенной, пользовательской.

Я для себя сделал вывод, что системная у DAO = 100%, у ADO < 100%.

Говоря же о пользовательской, она у обоих < 100%. И, конечно же, можно и нужно учитывать вероятность возникновения коллизий по сценариям, какие ты, к примеру, описал.

Если привнести чутка философии, то можно и должно утверждать, что RecordCount дает нам цифру, соответствующую именно тому рекордсету, который мы и запрашивали, и который был выплюнут запросом к таблице на момент его выполнения, с системной достоверностью, соответствующей используемой модели - DAO или ADO.

Говоря же об изменениях, которые могли произойти в таблице с момента выполнеия запроса - да, тот же самый запрос даст другой рекордсет . И, именно(!) ДРУГОЙ.

Интерпретировать его как ТОТ ЖЕ САМЫЙ - нельзя. Как и сравнивать результаты их анализов.

Доведя ситуацию до абсурда мы или получим или
- безысходность в виде полного отсутствия результата, т.к. замкнемся в бесконечном цикле обновления рекордсета и вычисления RecordCount
или же
- нулевую достоверность при принятии полученного RecordCount один раз и на всю оставшуюся жизнь.

Примерно так можно утверждать, что любой отсчет времени ложен априори. Недостоверен. А вот ту или иную степень достоверности ему придает разумно принятая погрешность и способ интерпретации этих отсчетов в реализуемой модели.

Как-то так...

Поэтому я и говорю - жути нагоняешь :)
.
...
Рейтинг: 0 / 0
06.06.2016, 21:33
    #39251526
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с recordset в VBA!
капча-печенье-я-не-робот
я же говорю - жути нагоняешь :)
.................................
.................................
.................................
Поэтому я и говорю - жути нагоняешь :)
.Рондо?)))
...
Рейтинг: 0 / 0
06.06.2016, 22:39
    #39251547
Помогите с recordset в VBA!
__Michelle,

Ага. Оно самое :)
.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с recordset в VBA! / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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