powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как достать recordset из report- а?
12 сообщений из 12, страница 1 из 1
Как достать recordset из report- а?
    #32080690
DrDyma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из формы достается конструкцией вроде: set rstTemp = Form.Recordset.Clone. С удивлением обнаружил, что у Report-a нет ссылки на объект Recordset, или есть но спрятана? Кто уже бодался с этим - дайте совет, плизз ...
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32080711
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через Me.RecordSource можешь вытащить sql, затем сделать recordset
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32080721
DrDyma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Только в репорте recordset уже отфильтрованый и с параметрами, вводимыми с клавиатуры, что в этом случае прийдется прийдется вводить их дважды, что ни есть гуд :-). Но ведь репорт строится на рекордсете (для дитейла например), так что он (рекордсет) есть, вопрос лишь как его достать...
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32080834
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где фильтрация происходит? если в форме, ты можешь в ней формировать recordset, a за тем по нему строить отчет.
например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
In the Open event of the report:

Private Sub Report_Open(Cancel As Integer)
  Me.RecordSource = rst.Name
End Sub

In a standard module:

Public rst As DAO.Recordset

Public Sub testreport()
  Set rst = CurrentDb.OpenRecordset( "Select * from tbl" )
  DoCmd.OpenReport  "rpt" , acViewPreview  
  rst.Close  
  Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32080876
ДиД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рекодсет у отчетов есть только в adp 2002.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32081264
DrDyma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за идею! Однако хоть и рекордсет содержит отфильтрованое кол-во записей, поле rst.Name содержит голое имя таблицы и в репорт влетают все записи из этой таблицы :-( Еще есть рекомендации?
Удачи.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32081556
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поподробнее можно - когда он нужен, какого типа источник записей - имя запроса или SQL-инструкция?
Можно, например, перед открытием отчета открыть его в конструкторе и взять свойство RecordSource
Если запрос - по найденному имени тем более не проблема.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32081593
DrDyma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если попдробнее, то есть .мдб наваянный моим шефом (он в молодости Гарвард закончил). Так вот есть query-я с не заданными параметрами - их при выполнении Аccеss спросит, например имя компании для фильтра. Ему потребовалось посчитать некоторые "итого", среди которых например сумма, XIRR() (не знаю как это точно перевести на русский). Увы, в отличие от экселя этой функции я не нашел, так что по быстрому написал ее на VB (методом деления пополам). На вход подаем имена полей для дат, сумм. Сами значения берем из рекордсета для текущей формы. В общем пол-часа работы и все готово. Но в случае репорта контекст (рекордсет) достать не получается :-( А может я велосипед изобретаю: напр. сумма считается как DSUM(...) - и работает как для формы, так и для репорта. Может есть где XIRR(..)
Ну а если нет такой функции - не хотелось бы его шедевр уж очень сильно "улучшать" - потом за каждым чихом ко мне бегать будет :-)
Кто что посоветует ???
Удачи.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32082166
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тебе recordset отчета, ты же формулы можешь в конструкторе прямо в поля прописать, будь то SUM или написанная пользователем функция
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32082282
DrDyma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Угу. Для функции DSUM() именно в конструкторе все и прописал . Он (DSUM) умеет добираться до рекордсета и из формы и из отчета. И для моей функции (XIRR) нужен весь рекордсет :-(
Удачи.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32082337
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже , что у автора вопроса ещё есть надежда, что нужной свойство у репорта есть, его надо только найти.
ЕГО НЕТ.
Кстати у adp2000 (а не только у 2002) оно есть.
...
Рейтинг: 0 / 0
Как достать recordset из report- а?
    #32082355
Фотография Polev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал, почитал... Вот такая вот процедурка получилась...

Private Sub Report_Activate()
Dim rst1 As Recordset, strName As String, strFilt As String, strSQL As String

strName = Me.RecordSource
strFilt = Me.Filter
strSQL = "SELECT " & strName & ".* FROM " & strName & " WHERE " & strFilt & ";"
Set rst1 = CurrentDb().OpenRecordset(strSQL, dbOpenDynaset)
End Sub
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как достать recordset из report- а?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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