powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Печать записей, отобранных в форме
5 сообщений из 5, страница 1 из 1
Печать записей, отобранных в форме
    #32762504
Страждущий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форме с помощью фильтра отобраны записи, которые необходимо распечатать в отчёте. Вроде бы ничего сложного, в форме есть свойство Filter его и используем. Для простых полей(EditBox) это работает, но для полей типа ComboBox всё намного сложнее.
Например:
"(((Запрос1.DOCSERIA="04 04"))) AND (( Lookup_OTDEL.name="Управление" ))"

где несложно заметить, что Lookup_OTDEL.name="Управление" , есть фильтр по полю со списком.

Хотелось бы решить эту проблему "малой кровью", т.е. не парсить значение свойства Filter, а каким-нибудь чудесным образом
всё-таки "запихать" эти записи в отчёт.

Приветствуются любые идеи :)
...
Рейтинг: 0 / 0
Печать записей, отобранных в форме
    #32762903
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно сохранить фильтр как запрос.
...
Рейтинг: 0 / 0
Печать записей, отобранных в форме
    #32762958
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если форма на DAO рекордсете то никаких проблемм с использованием фильтра быть не должно
'надо просто склонировать рекордсет формы
Set rsd = Me.Recordset.Clone
'применить к нему фильтр
rsd.Filter = Me.Filter
rsd.Sort = Me.OrderBy
'и открыть отчет на этом рекордсете
Private Sub Report_Open(Cancel As Integer)
Set Me.Recordset = rsd
End Sub
...
Рейтинг: 0 / 0
Печать записей, отобранных в форме
    #32762977
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не открыть отчет, базирующийся на том же запросе с найденным фильтром?

DoCmd.OpenReport reportname[, view][, filtername][, wherecondition]

где wherecondition A string expression that's a valid SQL WHERE clause without the word WHERE. (и есть наш фильтр)
...
Рейтинг: 0 / 0
Печать записей, отобранных в форме
    #32763199
Страждущий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч

А поподробнее? Как сохранить фильтр как запрос?

2 Latuk

Красивое решение, для ADP я так и сделал бы :) Но для MDB такая возможность не реализована :(

2 Rivkin Dmitry

Ты наверное меня не понял, хотя скореее всего это моя вина - полохо обьяснил.

Table1(pk as long, fk_pk_table2 as long)
Table2(pk as long, name as String)

Форма напрямую работает с Table1. Поле fk_pk_table2 редактируется с помощью элемента управелния - поле со списком, источником записи которого является Table2.

При использовании фильтра по полю fk_pk_table2 Access конкатенирует значение свойства Filter со строкой примерно следующего содержания:
Lookup_fk_pk_table2.name=" значение поля "
Соответсвенно, ни о каком дальнейшем использовании свойства Filter в SQL-запросах не может быть и речи :^(

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


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