powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / критерии для запроса отчета
37 сообщений из 37, показаны все 2 страниц
критерии для запроса отчета
    #34254425
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня следующий вопрос
есть запрос на основании которого делается отчет.
По сути на основании одного запроса нужно сделать несколько отчетов
в одном из них к примеру нужно отсортировать данные по дате, в другом на основании фамилии и тд как делать в запросе критерии - понятно, потом можно при помощи формы вносить этот критерий в запрос в поле "условие отбора". Например на событие контрола [полекритерия] формы (ИмяФормы) который выбирает критерий для отчета, на событие "после обновления" повесить открытие отчета в запрос которого вствлен в условия отбора Forms![ИмяФормы]![полекритерия]

Запрос один критериев - несколько, как осуществить механизм подстановки значений для критериев из разных форм при определенных событиях при чем, чтобы в одном случае можно было бы использовать один критерий в другом -2 а в третьем вообще неодного!
Понятно, что можно написать несколько по сути одинаковых запросов с разными именами и сделать их источниками для нескольких запросов, но это сильно увеличит размер БД, а как сделать чтобы при работе с формами для выбора критериев для отчета работать с одним запросом!
Я думаю это можно каким то образом осуществить через ВБА но незнаю как, я например делал в ВБА запросы для заполнения списка с выбором параметров из полей со списком, а как данное действие осуществить для запроса отчета!
Спасибо за ответ!
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254439
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При нажатии на кнопку можно использовать DoCmd.OpenReport - команду открытия отчета, у нее есть параметр "условие открытия отчета". В зависимости от ваших замыслов, передавайте туда нужные критерии (значения для них можно брать из этой же формы), например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'отбор записей по текущему коду
DoCmd.OpenReport "ИмяОтчета", acViewNormal, , "код=" & Me("код")

'отбор записей по текущему имени (строка)
DoCmd.OpenReport "ИмяОтчета", acViewNormal, , "имя='" & Me("имя") & "'"

'отбор записей по двум критериям
DoCmd.OpenReport "ИмяОтчета", acViewNormal, , "тип=" & Me("тип") & " AND сумма>" & Me("summ")

А из самого запроса все такие (динамические) условия уберите. Они подставятся туда в момент открытия отчета в соответствии с заданным параметром.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254446
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня в модуле функция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function ОткрытиеОтчета(stDocName As String) As Integer
On Error GoTo Err_ОткрытиеОтчета
' Функция связывается с событием "Нажатие кнопки" (Click) для открытия Отчета
    DoCmd.OpenReport stDocName, acPreview
Exit_ОткрытиеОтчета:
    Exit Function
Err_ОткрытиеОтчета:
    MsgBox Err.Description
    Resume Exit_ОткрытиеОтчета
End Function

в событиях нажатия кнопки на формах я потом вставляю =ОткрытиеОтчета("имя отчета")

как мне писать =ОткрытиеОтчета("имя отчета", acViewNormal, , "код=" & Me("код")) чтот попробовал не получается!
В чем ошибка?
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254448
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед вызовом отчета командой OpenReport, вы можете переопределить источник записей отчета, отсортировав его как надо. Это можно сделать на основе сохраненного запроса, а можно определить источник (RecordSource) в процедуре, например вот так
Код: plaintext
Reports("Накладные").RecordSource = "Select * From Накладные Order By Дата"
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254465
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metallУ меня в модуле функция...
в событиях нажатия кнопки на формах я потом вставляю =ОткрытиеОтчета("имя отчета")
как мне писать =ОткрытиеОтчета("имя отчета", acViewNormal, , "код=" & Me("код")) чтот попробовал не получается! В чем ошибка?Ошибок несколько.

При записи вызова функций в виде in-line вызовов (прямо в бланке свойств контрола) нельзя пользоваться константами vba (как в вашем случае acViewNormal) - вместо них нало писать их числовые значения. Также в таких вызовах нельзя писать Me (ссылку на текущую форму) - вместо этого надо полностью писать Forms![ИмяТекущейФормы]. Это первое.

Второе - в вашей функции ОткрытиеОтчета строка открытия отчета написана без параметра условия:DoCmd.OpenReport stDocName, acPreviewСравните с вариантом:
DoCmd.OpenReport stDocName, acPreview, , "код=" & Me("код")Выделенное красным - это то чего у вас нет, и это как раз то, из-за чего ваш сыр-бор в данной ветке. Поэтому, если вы хотите использовать всюду свою процедуру ОткрытиеОтчета для целей открытия отчетов с условиями, вам соответственно надо скорректировать там эту команду, ну и сделать параметр критерия в свой функции, естественно.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254495
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карфаген, пытаюсь вывести отчет по критерию год и месяц, предварительно просмотрел работающий запрос (запрос отчета) в СКЛ режиме пишу от туда........
WHERE (((Format([табКнигаПриходов]![датаПрихода],"yyyy-mm"))=[введите год и месяц в формате гггг-мм]))
перекидываю в указанный тобою код:
Код: plaintext
DoCmd.OpenReport "отчКнигаПриходов", acViewNormal, ,"(Format([табКнигаПриходов]![датаПрихода],"yyyy-mm"))=" &  2007 - 01 
но ругается на yyyy ошибка компиляции, я пробовал там скобки и т.д. но чтот не получается в чем ошибка?
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254509
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metallно ругается на yyyy ошибка компиляции, я пробовал там скобки и т.д. но чтот не получается в чем ошибка?Ну а как он ваши синие кавычки от красных будет отличать в выражении:"(Format([табКнигаПриходов]![датаПрихода],"yyyy-mm"))="Рекомендую красные кавычки там заменить на одинарные.

Заодно, возможно, предвосхищу ваш следующий вопрос. Format сконвертирует значение поля даты в строку, поэтому в вашем критерии результат этого Format следует сравнивать также со строкой.

То есть, надо не & 2007-01 (это у вас вообще означает 2007 минус 1), а & "'2007-01'"
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34254516
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Карфаген, именно в этом и была проблема Еще раз спасибо!
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34258776
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карфаген, в контексте вышеизложенного возникает вопрос а как при нажатии кнопки, которая открывает отчет с требуемыми параметрами програмно присвоить определенное значение названия отчета
то есть у меня проблемы с присвоением значения полю отчета
я пишу типа:
Reports!отчКнигаПриходов!Надпись33 = "124віаів"
но не работатет! вот код:

Код: plaintext
1.
2.
3.
Private Sub Кнопка24_Click()
DoCmd.OpenReport "отчКнигаПриходов", acPreview, , "[Название]='" & Me("ПолеСоСписком15") & "'"
Reports!отчКнигаПриходов!Надпись33 = "124віаів"
End Sub
что я не так делаю?
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34258902
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте делать в обработке событий самого отчета. Например, в событии "Форматирование" разделов отчета (т.е. в момент, когда поля отчета заполняются данными из его источника).

Либо можете написать свою функцию, которая возвращает это (текущее) название, а в источнике данных поля отчета написать вызов этой функции.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34259180
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KarfaqenПопробуйте делать в обработке событий самого отчета. Например, в событии "Форматирование" разделов отчета (т.е. в момент, когда поля отчета заполняются данными из его источника).

Либо можете написать свою функцию, которая возвращает это (текущее) название, а в источнике данных поля отчета написать вызов этой функции.
"Форматирование" разделов отчета - а как отследить разные моменты, то есть при нажатии кнопки 1 нужно название - Имя1, а при нажатии на кнопку 2 нужно название Имя2 ?
Посмотрел справку FormatCount исходя из этого мыслю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub ЗаголовокОтчета_Format(Cancel As Integer, FormatCount As Integer)
 If FormatCount =  1  Then
        Reports!отчКнигаПриходов!Надпись33 = "Название1"
        Else
            Reports!отчКнигаПриходов!Надпись33 = "Название2"
        End If
    End If
End Sub

как к этому FormatCount обратиться из процедуры нажатия кнопки для открытия отчета? Или я не так вообще мыслю.
по поводу 2го совета - функции - механизм вообще не представляю подскажи как делать!
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34259298
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metallИли я не так вообще мыслюВообще не так.
metallпо поводу 2го совета - функции - механизм вообще не представляю подскажи как делать!Тогда самый простой и понятный вам вариант:
1) объявить глобальную переменную в общем модуле;
2) в нажатиях кнопок перед открытием отчета записывать в эту переменную нужное назвнание;
3) в общем модуле написать функцию которая возвращает эту переменную;
4) в отчете у контрола в свойстве "данные" написать вызов этой функции.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34259462
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karfaqen
1) объявить глобальную переменную в общем модуле;
2) в нажатиях кнопок перед открытием отчета записывать в эту переменную нужное назвнание;
3) в общем модуле написать функцию которая возвращает эту переменную;
4) в отчете у контрола в свойстве "данные" написать вызов этой функции.

1) в модуле пишу:
Код: plaintext
Dim Имя As String
2) в обработчике Нажатия кнопки открытия отчета пишу перед командой открытия отчета:
Код: plaintext
1.
2.
3.
Private Sub Кнопка24_Click()
Me.ПолеИмя = Имя
DoCmd.OpenReport.....
End Sub
3) в модуле пишу:
Код: plaintext
1.
2.
Function Имя as variant
  Имя
end function
4) Это сделаю
Логика правильная? Где неточности?
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34259538
Karfaqen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем модуле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
'1) объявить глобальную переменную в общем модуле;
Public rTitle As String 

'3) написать функцию которая возвращает эту переменную;
Function GetReportTitle() As String
    GetReportTitle = rTitle
End Function

В модулях форм:
Код: plaintext
1.
2.
3.
'2) в нажатиях кнопок перед открытием отчета записывать в эту переменную нужное название;
rTitle = "Название1"
DoCmd.OpenReport "ИмяОтчета", acViewNormal, , "код=" & Me("код")

В отчете:
4) у контрола в свойстве "данные" написать вызов этой функции:=GetReportTitle()
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #34259563
metall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Карфаген! Все работает! Я понял где допустил просчеты (не хватает базовых знаний)!
Еще раз спасибо за помощь!!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
критерии для запроса отчета
    #39929950
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пж, где ошибка порылась?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select Case Me.Группа4.Value
Case 1
    rTitle = "Дебиторские договоры"
        DoCmd.OpenReport "uContract", acPreview, , "Закрыт=" & False & " Not ([Предмет договора]=)&" Like "Сервисное обслуживание"
Case 2
    rTitle = "Закрытые договоры"
        DoCmd.OpenReport "uContract", acPreview, , "Закрыт=" & True & "[Предмет договора]=&" Like "Сервисное обслуживание"
Case 3
    rTitle = "Все договоры"
        DoCmd.OpenReport "uContract", acPreview



Причем "Сервисное обслуживание" это не название поля, а значение в поле. Т.е. хочу сделать выборку в отчете без этих данных.
При таком коде Сase 1 и 2 выдают пустой отчет, третий норм.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39929958
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
Подскажите, пж, где ошибка порылась.
Много где.
Попробуйте так:
Код: vbnet
1.
2.
DoCmd.OpenReport "uContract", acPreview, , "Закрыт AND [Предмет договора]<>""Сервисное обслуживание"""
DoCmd.OpenReport "uContract", acPreview, , "Not Закрыт AND [Предмет договора]<>""Сервисное обслуживание"""
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39929988
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

Спасибо за вариант, извиняюсь, но я наверно не совсем правильно сформулировал свою задачу.

Вот до этого момента код выдает правильные результаты:

Код: vbnet
1.
DoCmd.OpenReport "uContract", acPreview, , "Закрыт=" & False



т.е. отдельное логическое поле в отчете или false или true у меня, но к этому еще хочу добавить условие, чтобы в отчете не показывались записи, где поле [Предмет договора] имеет значение "Сервисное обслуживание" (кстати, как в VBA маску написать, как в запросе Like "Сервис*"? т.е. дальше может быть продолжение)

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

выложите пример базы, не заставляйте угадывать вашу конкретику
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930008
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,

Код: vbnet
1.
DoCmd.OpenReport "uContract", acPreview, WhereCondition:= "Not [Закрыт] AND Not [Предмет договора] Like 'Сервисное*'"
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930009
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930128
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все фильтрует как задумывалось! Спасибо, и за ссылку тоже!
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930129
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

ну я бы конечно выложил пример, если возникло дальнейшее недоразумение )
Просто с рабочей БД выдергивать формы, отчеты, редактировать данные дольше было. Я ее все еще с 2007 года все дорабатываю, дорабатываю, вот решил сократить кол-во отчетов с 11 (!) до 1 (одни и те же данные, только условия отбора разные))
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930164
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
В таком случае,по моему,лучше всего сделать свободную форму открытия с группами переключателей (полейСоСписком),в зависимости от состояния (значений) которых формировать строку WHERE, которую использовать в OpenReport (нажатие кнопки на этой форме)
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930309
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

да, я так и сделал, в свободной форме группа переключателей, спасибо Панургу, помог с кодом. Теперь у меня один отчет!)
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39930974
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, еще один вопрос по этой теме. Не могу добавить Crit в первую строку после If. Пробовал везде: и спереди, и сзади )), с запятыми, амперсантами и с кавычками в разных вариантах... Иногда никакой ошибки не выдает, но и фильтр по датам не происходит. Подскажите, пж, куда и с чем? )


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim Crit As String

    ПериодС = IIf(IsNull(ПериодС), "05.12.1998", ПериодС)
    ПериодДо = IIf(IsNull(ПериодДо), Date, ПериодДо)

Crit = "[Договор_Дата]between #" & Format(ПериодС, "mm-dd-yy") & "# and #" & Format(ПериодДо, "mm-dd-yy") & "#"

    If Me.Флажок34 = False Then     
        DoCmd.OpenReport "uContract", acPreview, WhereCondition:="Not [Предмет договора] Like 'Сервис*'"
             Else
        DoCmd.OpenReport "uContract", acPreview, , Crit
             End If
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931034
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
Код: vbnet
1.
Crit = "[Договор_Дата]between #" & Format(ПериодС, "mm-dd-yy") & "# and #" & Format(ПериодДо, "mm-dd-yy") & "#"

Кто теб сказал что это должно быть так?
Не можешь сам, используй BuildCriteria например
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim strCriteria as string
If not Me.Флажок34  Then 
strCriteria= "Not [Предмет договора] Like 'Сервис*'"
Else
strCriteria=Application.BuildCriteria("[Договор_Дата]",dbDate,"between " & Nz(Me.ПериодС, DateSerial(1998, 12, 5)) & " and " & Nz(Me.ПериодДо ,Date))
End If
DoCmd.OpenReport "uContract", acPreview, WhereCondition:= strCriteria
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931036
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga, я же ссылку давал на создание запросов. Тут точно так же как там написано.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931049
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

спасибо!!

А Crit я срисовал с книжки одной, причем вариант работает. Во второй строке моего же условия на If все выводит правильно. Но я конечно переделаю как надо, а то видать устарела конструкция )
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931121
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант:
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931379
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
А Crit я срисовал с книжки одной, причем вариант работает. Во второй строке моего же условия на If все выводит правильно. Но я конечно переделаю как надо, а то видать устарела конструкция )
Это ты про вот это?
Панург
kniga
Код: vbnet
1.
Crit = "[Договор_Дата]between #" & Format(ПериодС, "mm-dd-yy") & "# and #" & Format(ПериодДо, "mm-dd-yy") & "#"


Кто теб сказал что это должно быть так?
Если да, то боюсь тебя расстроить, но эта книга, либо не про Access, либо её выкинуть нужно.
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931538
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, большое спасибо за Ваш вариант! Правда кажется немного длинноватым код, учитывая то, что у меня Сase(ов) 4, и на каждом с условием If. ))
Извините, я воспользовался вашим примером для добавления моей формы, чтобы показать весь код на кнопку в ней:)
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931551
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

прикладываю фотки книги откуда я взял процедуру. Издание 2006 года, я применил ее году так в 2008, все работает и когда вводишь дату в форму через слеш и через тире. Я так понял главное точки в датах в процедуре не ставить, ошибочно будет показывать.

По поводу кода в моей форме, в приложенной выше базе, то я вместо Crit , просто добавил ее полное определение в конструкцию wherecondition и все работает как планировалось . Но как то некрасиво выглядит, все-таки если описана переменная Crit то и вставлять надо именно Crit .. наверно, как в самой последней строчке кода.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
Private Sub adc_Click()
Dim Crit As String

    ПериодС = IIf(IsNull(ПериодС), "05.12.1998", ПериодС)
    ПериодДо = IIf(IsNull(ПериодДо), Date, ПериодДо)

Crit = "[Дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"

   Select Case Me.Группа4.Value
   
Case 1
If Me.Флажок34 = False Then
    
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="Not [Закрыт] AND Not [предмет] Like 'Сервис*'AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    Else
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="Not [Закрыт] AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    End If
    
Case 2
If Me.Флажок34 = False Then
    
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="IsNull([Акты]) AND Not [Предмет] Like 'Сервис*' AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    Else
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="IsNull([Акты]) AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    End If
    
Case 3
If Me.Флажок34 = False Then
  
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="[Закрыт] AND Not [Предмет] Like 'Сервис*' AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    Else
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="[Закрыт] AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    End If
    
Case 4
If Me.Флажок34 = False Then
   
        DoCmd.OpenReport "таблица1", acPreview, WhereCondition:="Not [Предмет] Like 'Сервис*' AND [дата]between #" & Format(ПериодС, "mm\/dd\/yy") & "# and #" & Format(ПериодДо, "mm\/dd\/yy") & "#"
    Else
        DoCmd.OpenReport "таблица1", acPreview, ,Crit
    End If
        
End Select
   
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931565
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай еще раз вопрос: Как "воткнуть" именно Crit , а не все ее определение после WhereCondition или внутри этого условия? (Извиняюсь за незнание терминологии)
Кстати, я пытался сделать перенос строки, смиряясь с ее длиной, но _, _& не помогает. Видать внутри аргумента WhereCondition нельзя делить строку?
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931634
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
.....Правда кажется немного длинноватым код...
Тогда я английская королева
Особенно если учесть что в каждом шаге CASE повторяется,за небольшими изменениями,одно и то же
kniga
...Как "воткнуть" именно Crit , а не все ее определение после WhereCondition или внутри этого условия?...
Код: vbnet
1.
2.
3.
4.
....
Crit = Mid(k1 & k2 & k3, 6)
DoCmd.OpenReport "таблица1", acViewPreview, , Crit
....
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931705
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

спасибо! Бум думать ) А перенос в длинной строке я сделал, знак переноса не там ставил, надо было перед &Format, а я ставил перед AND ))
...
Рейтинг: 0 / 0
критерии для запроса отчета
    #39931897
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kniga,

У себя для сбора условий по дате использую такую функцию

Код: vbnet
1.
2.
3.
Public Function fncDateToSTR(dDate) As String
 fncDateToSTR = "#" & Replace(Format(dDate, "mm/dd/yyyy hh:nn:ss"), ".", "/") & "#"
End Function



может использоваться так

Код: vbnet
1.
2.
  'За последнюю неделю
  svFilter = " and dDate between " & fncDateToSTR(date()) & " and " & fncDateToSTR(date() - 7)
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / критерии для запроса отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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