Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2015, 20:18   #1
Puffi.Muffi
Пользователь
 
Регистрация: 18.06.2013
Сообщений: 57
По умолчанию vba изменить RecordSource в отчете

Всем, доброго вечера.

Подскажите, пожалуйста, как открыть отчет при помощи vba, чтобы изменить RecordSource?
Как выяснилось
Код:
DoCmd.OpenReport "rpt_Name", acViewNormal
отправляет на печать отчет, а если поменять View чтобы не печатал, то нельзя изменять отчет. Или это не так?
Есть какие-нибудь еще варианты?
Может быть можно поменять RecordSource если отчет закрыт?

Puffi.Muffi
Puffi.Muffi вне форума Ответить с цитированием
Старый 20.10.2015, 20:59   #2
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

там былиlmgfu?
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 21.10.2015, 12:44   #3
Puffi.Muffi
Пользователь
 
Регистрация: 18.06.2013
Сообщений: 57
По умолчанию

AleksandrH,

конечно, в первую очередь и в течение нескольких часов.

Puffi.Muffi
Puffi.Muffi вне форума Ответить с цитированием
Старый 21.10.2015, 12:50   #4
Puffi.Muffi
Пользователь
 
Регистрация: 18.06.2013
Сообщений: 57
По умолчанию

Там кстати много обсуждений по этом поводу и нет подходящих ответов.

1) Как открыть отчет при помощи vba, на отправляя его на печать?

2) Возможно ли изменить RecordSource (при помощи vba), не открывая отчет?
Puffi.Muffi вне форума Ответить с цитированием
Старый 21.10.2015, 14:22   #5
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

http://www.access-programmers.co.uk/...83&postcount=7

может я не понял вопроса, тогда извинения.
я делал так:
0. создал 2 запроса q1, q2 (поля идентичные), отчет q1 на основе запроса q1
1. в событие открытия отчета
Код:
Private Sub Report_Open(Cancel As Integer)
    If Len(Me.OpenArgs & "") > 0 Then
        Me.RecordSource = Me.OpenArgs
    End If
End Sub
2. в модуль аксеса вставил код:
Код:
Sub raptest()
    DoCmd.OpenReport "q1", acPreview, OpenArgs:="q2"
End Sub
теперь изменяя OpenArgs между q1 u q2 открывается нужный запрос в отчете.

или надо изменить RecordSource и все, ничего не делать после етого? Зачем?
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 21.10.2015, 19:09   #6
Puffi.Muffi
Пользователь
 
Регистрация: 18.06.2013
Сообщений: 57
По умолчанию

AleksandrH, спасибо за ответ.

На форме навигации есть форма, на этой форме отчет основанный на запросе.
При нажатии на кнопку должны меняться данные в отчете на основе заданных параметров. В коде создается запрос на основе таблицы "Х".
Но при запуске почему-то выскакивала ошибка что таблица "Х" используется другим процессом. Я подумала что это может быть из-за отчета и если поставить RecordSource = "" в начале кода, то все получится. Но не знаю в чем было дело, все заново переделала, и заработало.

Подсказка, которую вы написали, очень пригодится в этом же проекте.

Единственное что мне сейчас не нравится что отчет основан на перекрестном запросе, а количество столбцов - переменное значение, в запросе количество столбцов меняется, а в отчете нет.
Puffi.Muffi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет кнопки VBA? Александр Шатило Microsoft Office Excel 1 19.01.2015 00:13
Как изменить формат даты в отчете Вадим27 Microsoft Office Access 3 23.11.2012 10:29
[VBA] Изменить стиль выделенного текста VadosKuru Помощь студентам 0 30.10.2012 18:59
VBA изменить параметры печать MaxxVer Microsoft Office Excel 9 04.10.2012 18:45
VBA Как изменить BG? Fakeme Microsoft Office Excel 4 31.01.2012 23:47