powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access отчет с программным вводом параметров
25 сообщений из 40, страница 1 из 2
Access отчет с программным вводом параметров
    #32400243
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые Знатоки Ассеss! Помогите, пропадаю совсем!!!!

Для Access XP

Никак не могу сделать :(

программный ввод параметра в отчет для хранимой процедуры, используемой как RecordSource этого отчета, через св-во InputParameters отчета.

Выбрасывается сообщение "Введенное выражение содержит недопустимую ссылку на объект InputParameter"

Пробовал размещать в процедуре обработки открытия конструкцию:
Me.InputParameters="<Имя глобальной переменной>", где глобальная переменная содержит значение параметра,

Не читает даже литерал:
Me.InputParameters="Значение"

Такое ощущение, что св-во InputParameter просто заблокирован, либо не работает, ни в режиме конструктора отчета, ни еще как :(

Просмотрел все, что нашел на форумах, в т.ч. на Вашем, ничего не нашел :(

Был бы очень благодарен всем, кто откликнулся и выручил бы.

С уважением,
Александр
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32400257
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не знаю.
но смею предположить:
а разве не me.recordsource.inputparameters?

ну, щас меня запинают...
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402297
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, InputParameters-это свойство самого очета, а не Источника записей
Чего-то не отвечает больше никто, может не в курсе?
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402335
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADO подключена?
Я вообще то в открытии отчета ставлю такую дребедень:
Код: plaintext
Reports![Переучет].InputParameters =  "id int=Forms!..." 


Сейчас уже не помню почему не Ме.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402372
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 gav
Ещё 20 топиков и достигнем нужного результата:)

Строка формируется в переменную (exec dbo.mySP myparam), при открытии отчёта она передаётся в OpenArgs.
На открытии отчёта пишем:
If Not IsNull(Me.OpenArgs) Then Me.RecordSource = Me.OpenArgs

2 ALL

Помню, получал такую проблему:
Задаём RecordSource отчёта: dbo.mySP, в InputParameters пишем
@myparam int="2003" (у процедуры один входной myparam int), открываем отчёт - всё работает.
Теперь в дизайнере всё это удаляем, сохраняем и прописываем это на открытие отчёта:
Me.RecordSource = "dbo.mySP"
Me.InputParameters = "@myparam int=""2003"""

Получаем вопрос: введите значение параметра myparam. Где грабли? Просто по старой памяти захотел разобраться, почему так не работает. Тогда время поджимало и сделал с формированием строки заранее, без InputParameters.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402409
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hammer

Получаем вопрос: введите значение параметра myparam. Где грабли? Просто по старой памяти захотел разобраться, почему так не работает

Есть такая проблема. Просто решается - нужно дать превью, отчет спрашивает параметр. Даем ОК, снова превью. Все ОК!
Дело видимо в порядке наступления события Open и получения рекордсетом фильтра - параметров.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402417
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Odess
Не понял нифига. Он КАЖДЫЙ раз выводит запрос на ввод параметра - я же хочу его программно поставлять.
При чём тут превью - абсолюьно пофиг, как я открываю отчёт - сразу на принтер или на превью.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402430
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я даю в строке входных параметров отчета в последнее время имя функции

@myparam int = getmyparam()

а функцию пишу в отчете
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402457
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК
Делаем отчёт - не прописываем ничего в RecordSource.
Пишем функцию в отчёте:
Код: plaintext
1.
2.
Public Function getparam_s() As String
getparam_s =  "2003 "
End Function

В отчёте в InputParameters:
@myparam int = getparam_s()
На открытие:
Me.RecordSource = "dbo.mySP"

Не работает - спрашивает тоже самое:)

Если прописать процедуру заранее в RecordSource - то всё нормально, но это мне и так было известно и отчётов таких вагон. Как раз интересовала проблема с программным назначением параметров и рекордсурса. В итоге, старый дедовский способ - заранее сформированаая строка, переданная в openargs.
Вот не могу понять, где грабли-то?:)
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402538
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hammer

Я поясняю - в конструкторе отчета:
1-й раз превью - запрос параметра.
2-й раз превью - все ОК.
Обязательно сохранить отчет (если просто закрыть - он не предложит сделать сохранение, обязательно Save).
Тогда все работает в дальнейшем и при превью и при печати.
У меня так все отчеты работают - иначе параметры слетают при изменении рекордсоурса.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402571
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Odess
При этом указан Рекордсурс и параметры? Или ничего не указано и всё на открытии задаётся?
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402572
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это фокус - покус наверное сказывается что после смены источника записей слетают входные параметры

попробуй в коде сразу прописывать и источник и входные параметры
me.recordsource = ...
me.inputparameters = ...




еще вариант (я не пробовал)

источник :
"exec MYSP @param1 int = 123"
или без exec
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402574
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
How to Dynamically Set the Input Parameters of a Report at Run Time in an ADP
...
Unlike with a form, you cannot use the InputParameters property to set the
parameters of a report at run time. However, you can set the record source of the
report at run time, and then pass the appropriate values to the stored procedure.
This article shows you how to do so.
....

http://support.microsoft.com/default.aspx?scid=kb;en-us;300693
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402598
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейК
попробуй в коде сразу прописывать и источник и входные параметры
me.recordsource = ...
me.inputparameters = ...
еще вариант (я не пробовал)
источник :
"exec MYSP @param1 int = 123"
или без exec
Читам то, что я раньше писал:
Строка формируется в переменную (exec dbo.mySP myparam), при открытии отчёта она передаётся в OpenArgs.
На открытии отчёта пишем:
If Not IsNull(Me.OpenArgs) Then Me.RecordSource = Me.OpenArgs
Теперь в дизайнере всё это удаляем, сохраняем и прописываем это на открытие отчёта:
Me.RecordSource = "dbo.mySP"
Me.InputParameters = "@myparam int=""2003"""
[526798] - это всё в этом ответе.

У меня так всё и работает - заранее сформированаая строчка. Просто интересно через параметры - программно в коде их задавать не получается.
Вариант Одесса повторить не удаётся - туплю, но не понимаю. Оставляю только заполненым в свойствах параметры - программно только источник, в конструкторе превью - спрашивает. Задаю - ещё превью - опять спрашивает.
Ты абсолютно прав, при смене источника сбиваются параметры - это можно наблюдать и в дизайнере. Указана строка с параметрами, нет источника, как только прописываем источник строка с параметрами обнуляется. У меня так. Аксес ХП 10.4302.4219 - SP2.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402676
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 incold
ОПЕРЕДИЛ!

Вот хотел как раз написать - пришёл с обеда и набрёл на тоже самое:)
Значит, правильно, что не стал изначально париться, а по старинке всё сделал....
А тот тут воду в ступе уже толчём:)
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402726
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hammer

Источник записей, к пимеру, ХП: СписокПереучета
Работает так же с SELECT ...

В событии Open следующий текст:
Код: plaintext
1.
2.
3.
Private Sub Report_Open(Cancel As Integer)
Me.InputParameters =  "id1 datetime=[Forms]![Старт]![Дата1], id3 int=[Forms]![Старт]![Поле41]" 
End Sub


Все работает!
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402766
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо всем за полезные советы, но у меня что-то он при ЛЮБОМ обращении к InputParameters, в т.ч. после изменения RecordSource, выдает сообщение о недопустимой ссылке на данное свойство.
Почему-я так и не понял.
Если это как-то связано с ADO, то она подключена.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402805
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 gav

Приведи список и порядок подключенных бибилиотек.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402811
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Odess
При этом в свойствах отчёта не прописаны InputParameters заранее, а прописан только RecordSource? Ну не работает так у меня:)
У меня не работает даже так (на открытие):
Me.InputParameters = "@myparam int=""2003"""
Если эту строчку прописать в дизайне - всё пучком.
Все манипуляции с превью из дизайна и т.п. предложенные ранее не помогли.
Что не противоречит микрософту:)

2 gav
Дык и не парься - формируй строку на лету и посылай её в RecordSource.
Прочитай пост incold.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402816
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hammer

А СП стоЯт?
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402822
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Odess
А читаем всё, что другие пишут или выборочно и сразу ответик?:)
Смотрим в пост номер [527053] в этой ветке:
Аксес ХП 10.4302.4219 - SP2
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402829
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hummer

Блин, я сразу и не заметил - убери из Me.InputParameters = "@myparam int=""2003""" Значек "@". В этом вся загвоздка - я тоже потрахался в свое время ;-)
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402849
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Odess
На втором превью просит ввести значение параметра "2003".
После сохранить в конструкторе заносится строчка в параметры:
myparam int="2003". Что уже мне не нравиться, так как для хранимых нужна @.
Это я по твоей инструкции.
Кусок хелпа:
Пример строки свойства InputParameter, используемой в инструкции SQL в свойстве Источник записей (RecordSource), может иметь следующий синтаксис.
state char=[Form]![StateList], salesyear smallint=[Введите год]

Пример строки свойства InputParameter используемой в сохраненной процедуре, имеет следующий вид.

@state char=[Form]![StateList], @salesyear smallint=[Введите год]

В результате параметр @state примет текущее значение элемента управления StateList и будет выведено приглашение на ввод параметра @salesyear. Любые другие параметры сохраненной процедуры, не присутствующие в списке, получат значения по умолчанию.

В общем, я думаю, умные дядьки из микрософт не стали бы зря писать то, что привёл инкольд...
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402854
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка с параметрами у тебя сохраниться, попробуй передавать значение из другой формы - т.е. поставь в коде ссылку на другую форму.
Фактически, ты их автоматом после твоих манипуляций с превью прописал в дизайнере отчётов, а программно ничего не задаёшь - так как ссылка на форму статична и уже прописана в конструкторе отчёта.
...
Рейтинг: 0 / 0
Access отчет с программным вводом параметров
    #32402860
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Hummer

В твоем случае нужно 2003 без кавычек писать - ты присваиваешь целому параметру текстовое значение - зачем?
Повторяю - хранимка не нужна - я абсолютно так же работаю с Select.... и т.п.
Не знаю что имел в виду Микрософт - но у меня это работает не в одном проекте.
А разбираться в конструкторе запросов мне лично проще, чем в тексте рекордсоурса, особенно с подстановкой параметров ;-)
Советую поразбираться - там нет никаких особых проблем.
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access отчет с программным вводом параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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