Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странности с DAO.Recordset в форме / 25 сообщений из 28, страница 1 из 2
06.12.2018, 16:23
    #39743663
Krinopotam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Сломал всю голову. Access 2010. Разделенная БД.

Есть табличная форма.
Заполняется данными с помощью DAO.Recordset:
Код: vbnet
1.
2.
3.
4.
    
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(sql)
Set Me.Recordset = rst



В переменной sql обычный Select запрос.
Данные загружаются нормально. Но при попытке сортировки или фильтрации в форме, вываливается ошибка запроса.
Стал смотреть Me.RecordSource и обнаружил, что при установке рекордсета формы, в RecordSource помещается обрезанный до 255 символов запрос. Отсюда и ошибки при сортировке. Если загружать данные в форму напрямую через Me.RecordSource=sql, то все ОК, но мне такой вариант не подходит.

Кто сталкивался, как побороть?
...
Рейтинг: 0 / 0
06.12.2018, 21:41
    #39743890
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Krinopotam,
Из HELP-"Источниками данных для форм могут служить таблицы и запросы ."
Рекордсет не упоминается.
Me.RecordSource="select * from ...where.."-и все...
...
Рейтинг: 0 / 0
07.12.2018, 08:16
    #39743988
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
sdkuKrinopotam,
Из HELP-"Источниками данных для форм могут служить таблицы и запросы ."
Рекордсет не упоминается.
Me.RecordSource="select * from ...where.."-и все...
А я использую

только ADO.Recordset
...
Рейтинг: 0 / 0
07.12.2018, 09:06
    #39744002
l-evgene
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Krinopotam,

Me.RecordSource=sql
sql может быть любой длины. По крайней мере 600-700 знаков у меня было
...
Рейтинг: 0 / 0
08.12.2018, 22:27
    #39744804
Krinopotam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
l-evgeneKrinopotam,

Me.RecordSource=sql
sql может быть любой длины. По крайней мере 600-700 знаков у меня было

Про это я знаю, но в этом случае сталкиваюсь с другими граблями - проблема с принудительным обновлением табличной формы.
Ни requery, ни Me.RecordSource=Me.RecordSource не работают стабильно. Обновление то срабатывает, то не срабатывает без всякой системы. Какие только конструкции я не пробовал.
Не говоря уже о том, что Me.RecordSource значительно медленнее, чем через Recordset. Уж не знаю, в чем там причина, но различие в скорости заметно на глаз.
...
Рейтинг: 0 / 0
08.12.2018, 22:31
    #39744806
Krinopotam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROIА я использую

только ADO.Recordset

Тоже пробовал - с ним свои глюки. Сортировка на форме при простейшем запросе срабатывает один раз. После этого форма вообще перестает реагировать на сортировку. Плюс, используя ADO.Recordset я периодически ловлю краши Accessа без внятных причин.
Причем это происходит на разных машинах с разной операционкой. Декомпилирование/компилирование не помогает.
За что в Access не возьмись, везде сплошные грабли. Очень сырой продукт.
...
Рейтинг: 0 / 0
08.12.2018, 22:59
    #39744812
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Krinopotam.... Очень сырой продукт.Особенно если учесть что ему минимум лет 20+
...
Рейтинг: 0 / 0
09.12.2018, 05:56
    #39744837
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
KrinopotamROIА я использую

только ADO.Recordset

Тоже пробовал - с ним свои глюки. Сортировка на форме при простейшем запросе срабатывает один раз. После этого форма вообще перестает реагировать на сортировку. Плюс, используя ADO.Recordset я периодически ловлю краши Accessа без внятных причин.
Причем это происходит на разных машинах с разной операционкой. Декомпилирование/компилирование не помогает.
За что в Access не возьмись, везде сплошные грабли. Очень сырой продукт.
"Вы просто не умеете Ееего готовить"
...
Рейтинг: 0 / 0
09.12.2018, 08:27
    #39744844
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROIKrinopotamпропущено...


Тоже пробовал - с ним свои глюки. Сортировка на форме при простейшем запросе срабатывает один раз. После этого форма вообще перестает реагировать на сортировку. Плюс, используя ADO.Recordset я периодически ловлю краши Accessа без внятных причин.
Причем это происходит на разных машинах с разной операционкой. Декомпилирование/компилирование не помогает.
За что в Access не возьмись, везде сплошные грабли. Очень сырой продукт.
"Вы просто не умеете Ееего готовить"
Пиз***бол...
...
Рейтинг: 0 / 0
09.12.2018, 08:39
    #39744846
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ПанургROIпропущено...

"Вы просто не умеете Ееего готовить"
Пиз***бол...
Хммм... Это вы мне?
...
Рейтинг: 0 / 0
09.12.2018, 08:47
    #39744848
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Krinopotam, протестировал сейчас, действительно есть такая проблема.
Вариант решения (наскорую вроде работает корректно)
сделать сохранённый запрос (можно если необходимо в нём менять строку SQL) и его использовать для открытия рекордсета, а потом уже присваивать форме.
...
Рейтинг: 0 / 0
09.12.2018, 08:47
    #39744849
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROIПанургпропущено...
Пиз***бол...
Хммм... Это вы мне?да
...
Рейтинг: 0 / 0
09.12.2018, 09:13
    #39744850
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ПанургROIпропущено...

Хммм... Это вы мне?да
Вы там поаккуратней на своем "Олимпе"!
А то свалитесь ненароком.
"НеПиз***бол"
...
Рейтинг: 0 / 0
09.12.2018, 09:27
    #39744851
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROI, от тебя тут четыре сообщения и ноль информации (ещё и затёртые и уже не смешные штампы). Одним словом - п...бол.
...
Рейтинг: 0 / 0
09.12.2018, 09:41
    #39744853
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Панург...Одним словом - п...бол...
Нашего полку прибыло.
...
Рейтинг: 0 / 0
09.12.2018, 09:51
    #39744854
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ПанургROI, от тебя тут четыре сообщения и ноль информации (ещё и затёртые и уже не смешные штампы). Одним словом - п...бол.
Ну во первых если быть точным 2 сообщения.
В первом сообщении я сообщил что использую ADO
во втором был ответ на сумбурное хаяния Access
Если у вас не держание, то хамите в другом месте.
С уважением к вам и к Лапуху.
...
Рейтинг: 0 / 0
09.12.2018, 10:02
    #39744856
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROI, " недержание " пишется слитно...

Ты и про классы писал... то же самое. Информации ноль (0). Повар ты наш...
...
Рейтинг: 0 / 0
09.12.2018, 10:11
    #39744857
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ПанургROI, " недержание " пишется слитно...

Ты и про классы писал... то же самое. Информации ноль (0). Повар ты наш...
1 спасибо пр недержание.
2 а классы, чё классы - живут, по мере возможности использую.
это вы про обращение к формам как к классу?
я это использую (когда есть необходимость)
и дались вам эти "классы"
А вообще предлагаю конфликт считать исчерпанным!
С уважением к вам.
...
Рейтинг: 0 / 0
09.12.2018, 16:40
    #39744965
Krinopotam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ПанургKrinopotam, протестировал сейчас, действительно есть такая проблема.
Вариант решения (наскорую вроде работает корректно)
сделать сохранённый запрос (можно если необходимо в нём менять строку SQL) и его использовать для открытия рекордсета, а потом уже присваивать форме.

Да, я тоже пришел к этому. Использую данное решение в качестве обходного пути. Спасибо!
...
Рейтинг: 0 / 0
09.12.2018, 19:11
    #39744993
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Просмотрел как "ломаются копья", но так и не "вкурил" зачем использовать рекордсет(и соответственно VBA) там, где без этого вполне можно обойтись. Или написание некоего кода это самоцель. Ведь создание RS(на инструкции SQL, по сути запросе, есть доставание правой рукой левого уха) для заполнения формы данными не несет никаких преимуществ по сравнению с назначением источником данных той же самой инструкции.
(может я чего-то не понимаю и это действительно дает какие-то преимущества. Подчеркиваю для заполнения данными,а не их изменения,хотя и для этого,довольно часто, достаточно запроса )
...
Рейтинг: 0 / 0
09.12.2018, 19:35
    #39744994
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
sdku, наборы данных бывают созданы не только на основе таблицы. Бывают, например, на XML или свободные наборы.
Да и не ломали ничего особенно.
...
Рейтинг: 0 / 0
09.12.2018, 19:56
    #39745000
Krinopotam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
sdkuПросмотрел как "ломаются копья", но так и не "вкурил" зачем использовать рекордсет(и соответственно VBA) там, где без этого вполне можно обойтись. Или написание некоего кода это самоцель. Ведь создание RS(на инструкции SQL, по сути запросе, есть доставание правой рукой левого уха) для заполнения формы данными не несет никаких преимуществ по сравнению с назначением источником данных той же самой инструкции.
(может я чего-то не понимаю и это действительно дает какие-то преимущества. Подчеркиваю для заполнения данными,а не их изменения,хотя и для этого,довольно часто, достаточно запроса )

Отвечу. Во первых, заполнение формы через рекордсет значительно быстрее, чем через Recordsource. Это заметно невооруженным глазом.
Во вторых, через рекордсет есть возможность управлять режимом заполнения данных. В третьих - Recordsource (по крайней мере в моем случае) имеет также ряд глюков, среди которых особенной раздражает нестабильное обновление данных формы (все известные методы обновления я перепробовал, можете мне поверить).
...
Рейтинг: 0 / 0
09.12.2018, 20:34
    #39745011
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
Krinopotam,

Может, что-то в консерватории подправить? ©
...
Рейтинг: 0 / 0
10.12.2018, 05:26
    #39745074
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
KrinopotamОтвечу. Во первых, заполнение формы через рекордсет значительно быстрее, чем через Recordsource. Это заметно невооруженным глазом.
Во вторых, через рекордсет есть возможность управлять режимом заполнения данных. В третьих - Recordsource (по крайней мере в моем случае) имеет также ряд глюков, среди которых особенной раздражает нестабильное обновление данных формы (все известные методы обновления я перепробовал, можете мне поверить).
Я вам верю сам заметил ряд глюков.
у меня в основном свободные формы
и я им присваиваю и обновляю Recordset по мере надобности.

Заметил одну неприятную закономерность
если "рабочую" форму открыть в конструкторе то свойство Recordsource пустое.
а у "глючной" формы в этом свойстве появляется текст в виде запроса зачастую огрызочный.
в тогда форма балдеет по черному.
очищаю сохраняю все нормально.
...
Рейтинг: 0 / 0
10.12.2018, 13:44
    #39745313
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с DAO.Recordset в форме
ROI...С уважением к ... и к Лапуху...
Эххх, если бы не это ласковое и доброе сообщение,
, то скорее всего бы прям напал на него
, со всей своей неимоверной мощью, с целью снизвержения.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странности с DAO.Recordset в форме / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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