Re: Отчет в MS Access
От: svanir Украина  
Дата: 07.09.06 09:18
Оценка: 2 (1) +1
Здравствуйте, Anton_Junior, Вы писали:

A_J>Знатоки Access'а, подскажите как можно вызвать отчет из другой формы с определенными параметрами.

A_J>Т.е. я хочу по нажатию кнопки в своей форме передать отчету параметры вроде источника строк и изменить некоторые статические надписи в заголовке. Как блин все это ему передать. Делаю отчет он работает, но я же не стану каждый раз ему задавать вручную источник строк и править надписи, как засунуть это ему через нормальный интерфейс например из формы.
A_J>Ну или подскажите где можно в инете найти какое-то описалово нормально по созданию отчетов с помощтю VBA. А не всякими дурацкими мастерами. Хелп у Access'a дурацкий, ну или я так хренво в нем ищу информацию. Писать на VBA я умею, все формы сделал, все таблицы создал, все номано работает, теперь главное это как-нибудь в удобоваримом виде распечатать. Но с отчетами я никогда раньше не сталкивался, поэтому и не знаю как это сделать.


Лучше сохранить источник данных как запрос, а по нажатию кнопки на форме менять сам запрос как Вам надо через CurrentDb.QueryDefs("имя запроса").SQL = "здесь текст нового запроса" (текст запроса можно взять из конструктора в SQL).
А надписи можно менять в зависимости от передаваемого параметра — например, при нажатии кнопки отчета на Форме1 ПАРАМ=1 (а ПАРАМ сделать глобальной переменной), а на Форме2 — 2. На событии открытия отчета анализировать ПАРМ и через Надпись.CAPTION= "" менять саму надпись.
Это вариант, который пришел первый на ум, а так возможно есть и другие. Надо прикинуть, подумать )
Отчет в MS Access
От: Anton_Junior  
Дата: 07.09.06 08:32
Оценка:
Знатоки Access'а, подскажите как можно вызвать отчет из другой формы с определенными параметрами.
Т.е. я хочу по нажатию кнопки в своей форме передать отчету параметры вроде источника строк и изменить некоторые статические надписи в заголовке. Как блин все это ему передать. Делаю отчет он работает, но я же не стану каждый раз ему задавать вручную источник строк и править надписи, как засунуть это ему через нормальный интерфейс например из формы.
Ну или подскажите где можно в инете найти какое-то описалово нормально по созданию отчетов с помощтю VBA. А не всякими дурацкими мастерами. Хелп у Access'a дурацкий, ну или я так хренво в нем ищу информацию. Писать на VBA я умею, все формы сделал, все таблицы создал, все номано работает, теперь главное это как-нибудь в удобоваримом виде распечатать. Но с отчетами я никогда раньше не сталкивался, поэтому и не знаю как это сделать.
Re[2]: Отчет в MS Access
От: Anton_Junior  
Дата: 07.09.06 09:40
Оценка:
Здравствуйте, svanir, Вы писали:

S>Лучше сохранить источник данных как запрос, а по нажатию кнопки на форме менять сам запрос как Вам надо через CurrentDb.QueryDefs("имя запроса").SQL = "здесь текст нового запроса" (текст запроса можно взять из конструктора в SQL).

S>А надписи можно менять в зависимости от передаваемого параметра — например, при нажатии кнопки отчета на Форме1 ПАРАМ=1 (а ПАРАМ сделать глобальной переменной), а на Форме2 — 2. На событии открытия отчета анализировать ПАРМ и через Надпись.CAPTION= "" менять саму надпись.
S>Это вариант, который пришел первый на ум, а так возможно есть и другие. Надо прикинуть, подумать )

Понял, поробую сделать. Только где объявлять глобальную переменную в форме или отчете?
Re[2]: Отчет в MS Access
От: Anton_Junior  
Дата: 07.09.06 10:51
Оценка:
Здравствуйте, svanir, Вы писали:


S>Лучше сохранить источник данных как запрос, а по нажатию кнопки на форме менять сам запрос как Вам надо через CurrentDb.QueryDefs("имя запроса").SQL = "здесь текст нового запроса" (текст запроса можно взять из конструктора в SQL).

S>А надписи можно менять в зависимости от передаваемого параметра — например, при нажатии кнопки отчета на Форме1 ПАРАМ=1 (а ПАРАМ сделать глобальной переменной), а на Форме2 — 2. На событии открытия отчета анализировать ПАРМ и через Надпись.CAPTION= "" менять саму надпись.
S>Это вариант, который пришел первый на ум, а так возможно есть и другие. Надо прикинуть, подумать )

В общем сделал, только без глобальной переменной, вызываю через OpenArgs. Спасибо огромное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.