powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вызов отчета с помощью хранимой процедуры
11 сообщений из 11, страница 1 из 1
Вызов отчета с помощью хранимой процедуры
    #39409622
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На форме есть кнопка, с помощью которой хочу вызвать отчет "check_report" со своими параметрами.
Но как их туда внедрить?
Если до открытия присвоить, - понятно, что нельзя таким образом.
а если после открытия отчета, то уже говорит, что поздно.
Как мне поменять?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub momartva_print_Click()
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_report_check")
    Call OpenProcSql_In ................. здесь вызывается функция связи с ODBC
           qdf.SQL = "EXEC proc_report_check @date_1='" & Format(Me.date_1, "yyyymmdd") _
              & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
                qdf.ReturnsRecords = True
            DoCmd.OpenReport "check_report", acViewPreview
            Reports![check_sia_rep].RecordSource = "sproc_report_check"
    Call OpenProcSql_Out ................. здесь прерывается связъ с ODBC
End Sub



В интернете я искала литературу по связи Access и Sql, но что-то не нашла то, что мне нужно по части открытия форм с нужным списком, открытие конкретной и новой записи. Может у кого-нибудь есть нормальная ссылка, чтобы ясно было написано, что для чего и что к чему?
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409658
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

я заливаю во врем таблицу из хранимки, и на ней открываю репорт.
при закрытии репорта чищу табличку
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409668
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИгортанNickBell,

я заливаю во врем таблицу из хранимки, и на ней открываю репорт.
при закрытии репорта чищу табличку

почти аналогично

например: отделу труда требовались итоги в разрезе цех-участок-изделие-профессия-оборудование
анализ данных в разном разрезе иногда занимал до недели

первоначально отчеты выдавали с исходников --данные с разных дней не сходились

поэтому перешли на снимок базы на дату дд/мм/гггг
--готовили рабочие таблички в нужных разрезах типа (цех-участок-изделие-профессия-оборудование-подитоги)
--с этих табличек расчитывали требуемое(для уточнения отдельных позиций обращались к исходникам), но основа --итоги с табличек
--иногда итоги получались неприемлемыми(обычно такое бывало при пересчете расценков) -- возвращались к исходникам
----пересчитывали расценки и делали новый снимок, на другую дату

если итоги устраивали --делали квартальный пересчет(из основных таблиц убирали историю изменений )
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409671
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

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

--при загрузку ленточная форма обращалась к пустой локальной табличке
--по основным полям --динамический поиск с записью в локальную таблицу(до 200 строк)
--далее просматривалась эта локальная таблица
--при смене критериев поиска --табличка формировалась заново
--при клике на строке --подробный просмотр записи(полей в таблицах было до 50-100

весь просмотр --только в локальной таблице
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409676
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А эти временные таблицы в Access или в SQL создаете?
Никогда ими не пользовалась, как-то обходилась без них.
Сейчас посмотрела, это надо еще поля заранее объявлять, как-то не хочется, но если нет другого выхода, то придется.
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409683
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub open_rpt(pVal&)
    With CurrentDb.QueryDefs("q_mssql")
        .Connect = "ODBC;DSN=toto;UID=sa;PWD=0;DATABASE=Northwind"
        .SQL = "exec sel_example " & pVal
        DoCmd.OpenReport "q_mssql_rpt", acViewPreview
        .SQL = "select 1"
        .Connect = ""
    End With
End Sub
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409691
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell, а чем OpenArgs не подходит? глобальные переменные в конце концов... (это если по быстрому, по хорошему то модуль класса конечно), почитайте Гетца... - там неплохо написано.
в запросе не обязательно форматировать - это можно сделать в отчете - там даже событие есть такое "форматирование".
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409701
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Я делаю табличку просто в Аксе, дубль полей из хранимки и загоняю данные в нее перед открытием.
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409799
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBellНа форме есть кнопка, с помощью которой хочу вызвать отчет "check_report" со своими параметрами.
Но как их туда внедрить?
Если до открытия присвоить, - понятно, что нельзя таким образом.
а если после открытия отчета, то уже говорит, что поздно.
Как мне поменять?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub momartva_print_Click()
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_report_check")
    Call OpenProcSql_In ................. здесь вызывается функция связи с ODBC
           qdf.SQL = "EXEC proc_report_check @date_1='" & Format(Me.date_1, "yyyymmdd") _
              & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
                qdf.ReturnsRecords = True
            DoCmd.OpenReport "check_report", acViewPreview
            Reports![check_sia_rep].RecordSource = "sproc_report_check"
    Call OpenProcSql_Out ................. здесь прерывается связъ с ODBC
End Sub



В интернете я искала литературу по связи Access и Sql, но что-то не нашла то, что мне нужно по части открытия форм с нужным списком, открытие конкретной и новой записи. Может у кого-нибудь есть нормальная ссылка, чтобы ясно было написано, что для чего и что к чему?
Что-то не пойму Вашу проблему. Допустим у Вас есть некий отчёт, источником данных для которого служит запрос к серверу. Ну так меняйте SQL текст запроса ДО открытия отчёта и открывайте отчёт. Вы какие-то непонятные вещи добавили в свой код и считаю их лишними.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub momartva_print_Click()
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_report_check")
    'Call OpenProcSql_In ................. здесь вызывается функция связи с ODBC
           qdf.SQL = "EXEC proc_report_check @date_1='" & Format(Me.date_1, "yyyymmdd") _
              & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
                qdf.ReturnsRecords = True ' Зачем в коде постоянно меняете данное свойство? 1 раз ручками поставьте и всё.
            DoCmd.OpenReport "check_report", acViewPreview
            'Reports![check_sia_rep].RecordSource = "sproc_report_check"
    'Call OpenProcSql_Out ................. здесь прерывается связъ с ODBC
End Sub


Всё что отмечено красным удалите и всё! Только не забудьте указать в свойстве "Recordsource" название запроса "sproc_report_check".
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409800
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NickBell,

Забыл написать 1 нюанс. Если отчёт уже открыт в режиме предварительного просмотра, если не ошибаюсь второй раз Access не открывает отчёт. Поэтому лучше проверить открыт ли отчёт. Если да, то закрыть и только потом открыть. Типа так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub momartva_print_Click()
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_report_check")
    qdf.SQL = "EXEC proc_report_check @date_1='" & Format(Me.date_1, "yyyymmdd") _
        & "', @date_2='" & Format(Me.date_2, "yyyymmdd") & "'"
    If CurrentProject.AllReports("check_report").IsLoaded Then DoCmd.Close acReport, "check_report"
    DoCmd.OpenReport "check_report", acViewPreview
End Sub
...
Рейтинг: 0 / 0
Вызов отчета с помощью хранимой процедуры
    #39409825
Фотография NickBell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
studieren,

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


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