Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Применить готовый RecordSet к другой форме / 7 сообщений из 7, страница 1 из 1
17.07.2019, 16:36
    #39838387
vklpt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
Есть форма с источником в виде тяжёлого запроса.
Нужно сделать красивую печатную форму с этими же данными.
Стандартный путь - делаем отчёт на основе такого же запроса, но это нужно будет снова подождать, пока запрос выполнится.
А есть ли способ скопировать готовый набор записей в отчёт?
Что-то вроде этого:
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Report_Open(Cancel As Integer)
    Dim RST As DAO.Recordset
    
    Set RST = Forms("форма_источник").RecordsetClone
    Set Me.Recordset = RST
End Sub


Приведённый код выдаёт ошибку: "Это свойство доступно только в файлах ADP"

MS Access 2010 x32, база в MDB.
...
Рейтинг: 0 / 0
17.07.2019, 16:43
    #39838392
vklpt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
Ну и так будет Type mismatch

Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Report_Open(Cancel As Integer)
    Dim RST As ADODB.Recordset
    
    Set RST = Forms("форма_источник").RecordsetClone
    Set Me.Recordset = RST
End Sub
...
Рейтинг: 0 / 0
17.07.2019, 17:30
    #39838414
zimkon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
vklpt,
пример от Панурга
...
Рейтинг: 0 / 0
18.07.2019, 17:29
    #39838886
vklpt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
Спасибо, работает для "Предварительного просмотра", но при печати (на виртуальный PDF) принтер выводит только начиная со второй страницы (добавил данных в таблицу). Что с этим можно сделать?
...
Рейтинг: 0 / 0
18.07.2019, 19:21
    #39838922
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
vklptЧто с этим можно сделать?строчку кода нужно добавить
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub secDetail_Print(Cancel As Integer, PrintCount As Integer)
    With m_rst
        If Not .EOF Then
...
        Else
            Me.PrintSection = False
            Me.NextRecord = True
            m_rst.MoveFirst
        End If
    End With
End Sub
...
Рейтинг: 0 / 0
19.07.2019, 15:24
    #39839291
vklpt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
Понятно, при фактической печати это всё ещё раз отрабатывает. Спасибо.
Получается, чтобы реально распечатать, надо ещё и предпросмотр отмотать на последний лист, чтобы сработал movefirst на EOF.
И счётчик страниц правда не отрабатывает нормально (Страница 3 из 1), да и как-то слишком много костылей, видимо правильнее просто форму распечатать, пусть и некрасиво.
...
Рейтинг: 0 / 0
19.07.2019, 15:28
    #39839297
vklpt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применить готовый RecordSet к другой форме
Ну или добавить событие на печать заголовка, он же один раз печатается. Но всё равно слишком много костылей
Код: vbnet
1.
2.
3.
Private Sub ЗаголовокОтчета_Print(Cancel As Integer, PrintCount As Integer)
    RST.MoveFirst
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Применить готовый RecordSet к другой форме / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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