powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет.Recordset = MyRecordset => Вылетает Access 2002
18 сообщений из 18, страница 1 из 1
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407582
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отчет без группировок, без источника данных и без Inputparameters.
(хотя хотелось бы в перспективе и с группировками)

В событии Open присваиваю ему Recordset, созданый динамически.
(таким образом я пытаюсь обойти ограничение 255 символов на входящий текстовый параметр отчета)

И при попытке перейти на его последнюю страницу - ненормально завершается Access.

Что делать и кто виноват?
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407587
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А если присваивать не Recordset, а RecordSource?
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407606
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч
А если присваивать не Recordset, а RecordSource?
Тогда придется задавать и InputParameters, который урезает входящий текстовый параметр до 255 символов. Из за чего, собственнол, и весь сыр/бор.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407612
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем входящий текстовый параметр? Есть ведь глобальные переменные.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407615
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Жмурик
Не понял, зачем? Adp или mdb?
Select * from sometable where Idsometable = 1 - поставляем это в RecordSource и не знаем бед.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407618
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К вопросу о параметрах
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407622
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч
А зачем входящий текстовый параметр? Есть ведь глобальные переменные.
Какие такие глобальные переменные?
У меня на входе в сохраненную процедуру текстовый параметр (до 800 символов бывает и более). Собственно, это набор чисел, упакованый в XML.
При вызове этой процедуры через объекты ADODB все нормально, но при присвоении полученного Recordset отчету последний неслабо глючит...
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407630
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
О, там сохраненная процедура... В вопросе был только отчет.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407631
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В переменную загоняйте, потом через openargs передавайте в отчёт - всё будет работать нормально.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407633
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе, в конструкторе отчёта можно сразу прописать значение параметра в хранимой равное возвращаемому значению функции в аксесе, а в источнике данных вашу хранимую - в ссылке различные варианты действий описаны.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407634
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hummer
sorry
adp
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407640
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хаммер
Мне надо не получить, а передать длинный параметр
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407641
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Жмурик
По ссылке можно прочитать, как работать с отчётами - ещё поиск по форуму, а наиболее распространённые способы решения я уже изложил выше...
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407685
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось решить проблему с помощью назначения источнику строк
"exec dbo.sp_ла_ла_ла 'Значение очень длинного параметра............'".
При этом InputParameters оставить пустым.

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

Хаммер
Речь идет не об умении работать с Access, а о борьбе с ошибками в его реализации. Весь форум, где встречается слово Recordset я прошерстил полностью, прежде, чем задавать вопрос.

Вообще-то не работа получается, а бред какой-то. Чтобы сделать что либо минимальное, приходиться извращаться и приспосабливаться, искать какие-то лазейки вместо того, чтобы выбирать наиболее оптимальный путь.

Или я (и задачи, стоящие передо мною) давно переросли его возможности?
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407709
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Только что попробовал через функцию.
А именно, в InputParameters прописываю
..............., @Парам text = getvalue()
а в getvalue() as string возвращаю значение.
На коротких значениях опять таки все работает, а на длинных - урезает.
То есть:
Никакой разницы со ссылкой на поля форм.

Остается один единственный способ - мой предыдущий пост.
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407712
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или непрвильная постановка задачи....
(эта не чтоб обидеть)...
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32407729
Жмурик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
или непрвильная постановка задачи....
Вы хотите поговорить об этом?...:)

Давайте сформулируем правльно.
Цель - реализовать пользовательский фильтр из длинного списка для отчета.
И что без гемороя с временными таблицами. Против таблиц против ничего не имею, против геммороя имею. И желательно этот фильтр запоминать для каждого пользователя...
...
Рейтинг: 0 / 0
Отчет.Recordset = MyRecordset => Вылетает Access 2002
    #32408095
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Жмурик

Речь идет не об умении работать с Access, а о борьбе с ошибками в его реализации. Весь форум, где встречается слово Recordset я прошерстил полностью, прежде, чем задавать вопрос

По ссылке ходили? Там как раз пример работы с отчётами. Ну нельзя в аксесе программно задавать InputParameters в отчётах и точка.
Такой момент:
В конструкторе отчёта в RecordSource: [owner].mySuperSP, в InputParameters: @myparam varchar(8000)=mysuperfunc(), где mysuperfunc() string function.
Сохраняем отчёт. Теперь в хранимой процедуре делаем селект в какую-нибудь временную табличку количества знаков в @myparam - ну не верю я, что что-то обрезается. Не нашёл нигде ограничения по кол-ву символов в InputParameters. Более того, у нас передаётся строка SQL в ХП для динамического формирования запроса для отчёта, свои грабли - но так исторически сложилось в некоторых местах (оффтоп просто) - никогда ничего не обрезалось.
Ещё такой момент - вы упомянули, что через ADODB.Command всё работает, так значит и по вышеописанному тоже всё должно работать.

И желательно этот фильтр запоминать для каждого пользователя...
Так и запоминайте в таблице фильтров для пользователя, при изменении - сохраняйте последний фильтр. Не временная табличка:) Либо делайте ини файл на каждой машине либо в реестр (но это уже не для фильтров).

Или я (и задачи, стоящие передо мною) давно переросли его возможности?

Ну-ну:)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет.Recordset = MyRecordset => Вылетает Access 2002
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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