|
|
|
| DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "", "(((Date1) Between " & usDate([Forms]![Форма1]![TextBox1]) & " And " & usDate([Forms]![Форма1]![TextBox2]) & "))" | |
|
| |
|
|
|
| для отладки, попробуйте задать даты в явном виде.
кроме того:
даты - нужно брать в кавычки;
последний символ "&" здесь лишний; | |
|
| |
|
|
|
| не выходит... строку желтым цветом красит...
а если вставляю кавычки и удаляю &, ошибку выдает | |
|
| |
|
|
|
| красит - потому как ошибка.
попробуйте поставить конкретные значения и убрать "лишние" скобки и кавычки:
например,
"SELECT CustomerID FROM Orders WHERE OrderDate Between #04/1/95# And #07/1/95#" | |
|
| |
|
|
|
|
| Пишу
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "SELECT Мониторинг- FROM Date1 WHERE Date Between #04/3/07# And #27/03/07#"
Не выводится нужный диапазон
Мониторинг - это у меня название отчета. Date1 - поле, которое должно отфильтровываться. | |
|
| |
|
|
|
| Из хелпа
"При указании аргумента условиеОтбора литералы даты (символы дат) должны вводиться !!! в американском формате !!! , даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.96, а в США как 5/10/96. Обязательно заключите даты в символы «решетки» (#)," | |
|
| |
|
|
|
| "SELECT Мониторинг- FROM Date1 ..."
выбрать дынные из таблицы "Мониторинг-"
из поля "Date1"
- у Вас есть такая таблица и такое поле в этой таблице?
- у Вас вообще формируется отчет, если оставить в таком виде:
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "SELECT Мониторинг- FROM Date1" | |
|
| |
|
|
|
| Вот вся обработка, а Мониторинг это запрос
Private Sub Сформировать_Click()
Dim s As String
Select Case Me.АorХ
Case "Ателье"
s = "А"
Case "Химчистка"
s = "Х"
Case Else
s = "АиХ"
End Select
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview
End Sub | |
|
| |
|
|
|
| А если создать запрос в конструкторе запросов.
Вначале вообще без условия с датами, а затем добавить одну дату и т.д. | |
|
| |
|
|
|
| куда этот хапрос потом? мне кажется, проще всего как-то с этими полями на форме TextBox1 и TextBox2 | |
|
| |
|
|
|
| Я имею ввиду попробовать найти в чём ошибка.
Там, при создании в построителе- всё наглядно.
и данные из этих полей тоже можно использовать в этом запросе, построив построителем в условии отбора путь к этим полям.
А потом кода всё заработае возьми этот SQL и суй в любое место кода... | |
|
| |
|
|
|
| можно и не Between
А так >=data1 and <=data2 | |
|
| |
|
|
|
| belvesta, обратите внимание на мною расположенное выше сообщение.
Приведите даты к американскому формату, и заключите даты в символы «решетки» (#). | |
|
| |
|
|
|
| Никак у меня не получается. Этот американский формат не причем!
Что не так?
Private Sub Сформировать_Click()
Dim s As String
Select Case Me.АorХ
Case "Ателье"
s = "А"
Case "Химчистка"
s = "Х"
Case Else
s = "АиХ"
End Select
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "", "Date1 Between " & "#" & Format([Forms]![Форма к мониторингу]![TextBox1], "mm\/dd\/yyyy") & "# " & " And #" & Format([Forms]![Форма к мониторингу]![TextBox2], "mm\/dd\/yyyy") & "# "
End Sub | |
|
| |
|
19 Кб. |
|
| Вот так надо | |
|
| |
|
|
|
| АлексейЕ сказал же - если вставляете дату программно, то ДАТУ в американский формат и в #. Зачем же Вы в #
Format([Forms]![Форма к мониторингу]![TextBox1], "mm\/dd\/yyyy")
|
втсавляете? | |
|
| |
|
|
|
| спасибо большое. Но почему-то по такому же принципу не выбирается пофамильно.
Например, я делаю поле со списком - фамилии. Хочу, чтобы при выборе одной из фамилий отчет формировался только для одной фамилии. Не формируется. Одна пустота. | |
|
| |
|
|
|
| Скиньте пример - таблицу и напишите, чего там надо вывести. | |
|
| |
|
|
|
| если я поля, в которые надо ввести дату, оставляю пустыми, то выскакивает ошибка. Что делать? Я написала так:
Private Sub Сформировать_Click()
Dim TextBox1 As Variant
Dim TextBox2 As Variant
Dim s As String
Select Case Me.АorХ
Case "Ателье"
s = "А"
Case "Химчистка"
s = "Х"
Case Else
s = "АorХ"
End Select
If Nz([Forms]![Форма1]![TextBox1]) <> " " And Nz([Forms]![Форма1]![TextBox2]) <> " " Then
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(Nz([Forms]![Форма1]![TextBox1]), "mm\/dd\/yyyy") & "# " & " And #" & Format(Nz([Forms]![Форма1]![TextBox2]), "mm\/dd\/yyyy") & "# "
If ([Forms]![Форма1]![TextBox1]) Is Null And ([Forms]![Форма1]![TextBox1]) Is Null Then TextBox1 = DMin("[Date1]", FillReceipt) And TextBox2 = DateNow
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(TextBox1, "mm\/dd\/yyyy") & "# " & " And #" & Format(TextBox2, "mm\/dd\/yyyy") & "# "
End If
End Sub | |
|
| |
|
|
|
| Теперь сделал так, ошибку не выдает, но результата тоже нет.
Private Sub Сформировать_Click()
Dim s As String
Select Case Me.АorХ
Case "Ателье"
s = "А"
Case "Химчистка"
s = "Х"
Case Else
s = "АиХ"
End Select
If ([Forms]![Форма1]![TextBox1]) <> "" And ([Forms]![Форма1]![TextBox2]) <> "" Then
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(Nz([Forms]![Форма1]![TextBox1]), "mm\/dd\/yyyy") & "# " & " And #" & Format(Nz([Forms]![Форма1]![TextBox2]), "mm\/dd\/yyyy") & "# "
If ([Forms]![Форма1]![TextBox1]) <> "" And ([Forms]![Форма1]![TextBox2]) = "" Then
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(Nz([Forms]![Форма1]![TextBox1]), "mm\/dd\/yyyy") & "# " & " And #" & Format(Date, "mm\/dd\/yyyy") & "# "
If ([Forms]![Форма1]![TextBox1]) = "" And ([Forms]![Форма1]![TextBox2]) <> "" Then
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(DMin("[Date1]", FillReceipt), "mm\/dd\/yyyy") & "# " & " And #" & Format(Nz([Forms]![Форма1]![TextBox2]), "mm\/dd\/yyyy") & "# "
If Nz([Forms]![Форма1]![TextBox1]) = "" And Nz([Forms]![Форма1]![TextBox2]) = "" Then
DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, , "Date1 Between " & "#" & Format(DMin("[Date1]", FillReceipt), "mm\/dd\/yyyy") & "# " & " And #" & Format(Date, "mm\/dd\/yyyy") & "# "
End If
End If
End If
End If
End Sub | |
|
| |