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

Для Access XP

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

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

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

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

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

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

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

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

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

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


Сейчас уже не помню почему не Ме.
...
Рейтинг: 0 / 0
09.02.2004, 11:38
    #32402372
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
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
09.02.2004, 11:56
    #32402409
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
2 Hammer

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

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

@myparam int = getmyparam()

а функцию пишу в отчете
...
Рейтинг: 0 / 0
09.02.2004, 12:21
    #32402457
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
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
09.02.2004, 12:57
    #32402538
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
2 Hammer

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

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




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

источник :
"exec MYSP @param1 int = 123"
или без exec
...
Рейтинг: 0 / 0
09.02.2004, 13:11
    #32402574
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
Код: 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
09.02.2004, 13:21
    #32402598
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
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
09.02.2004, 13:47
    #32402676
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
2 incold
ОПЕРЕДИЛ!

Вот хотел как раз написать - пришёл с обеда и набрёл на тоже самое:)
Значит, правильно, что не стал изначально париться, а по старинке всё сделал....
А тот тут воду в ступе уже толчём:)
...
Рейтинг: 0 / 0
09.02.2004, 14:02
    #32402726
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
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
09.02.2004, 14:18
    #32402766
gav
gav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
Большое спасибо всем за полезные советы, но у меня что-то он при ЛЮБОМ обращении к InputParameters, в т.ч. после изменения RecordSource, выдает сообщение о недопустимой ссылке на данное свойство.
Почему-я так и не понял.
Если это как-то связано с ADO, то она подключена.
...
Рейтинг: 0 / 0
09.02.2004, 14:29
    #32402805
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
2 gav

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

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

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

Блин, я сразу и не заметил - убери из Me.InputParameters = "@myparam int=""2003""" Значек "@". В этом вся загвоздка - я тоже потрахался в свое время ;-)
...
Рейтинг: 0 / 0
09.02.2004, 14:46
    #32402849
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
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
09.02.2004, 14:48
    #32402854
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
Строка с параметрами у тебя сохраниться, попробуй передавать значение из другой формы - т.е. поставь в коде ссылку на другую форму.
Фактически, ты их автоматом после твоих манипуляций с превью прописал в дизайнере отчётов, а программно ничего не задаёшь - так как ссылка на форму статична и уже прописана в конструкторе отчёта.
...
Рейтинг: 0 / 0
09.02.2004, 14:50
    #32402860
Odess
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access отчет с программным вводом параметров
2 Hummer

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


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