Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хочу вывести отчет за заданные период, но выходит ошибка.
 
 автор: belvesta   (02.04.2007 в 11:48)   личное сообщение
 
 

DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "", "(((Date1) Between " & usDate([Forms]![Форма1]![TextBox1]) & " And " & usDate([Forms]![Форма1]![TextBox2]) & "))"

  Ответить  
 
 автор: ДрЮня   (02.04.2007 в 12:03)   личное сообщение
 
 

для отладки, попробуйте задать даты в явном виде.
кроме того:
даты - нужно брать в кавычки;
последний символ "&" здесь лишний;

  Ответить  
 
 автор: belvesta   (02.04.2007 в 12:35)   личное сообщение
 
 

не выходит... строку желтым цветом красит...
а если вставляю кавычки и удаляю &, ошибку выдает

  Ответить  
 
 автор: ДрЮня   (02.04.2007 в 13:53)   личное сообщение
 
 

красит - потому как ошибка.
попробуйте поставить конкретные значения и убрать "лишние" скобки и кавычки:
например,

"SELECT CustomerID FROM Orders WHERE OrderDate Between #04/1/95# And #07/1/95#"

  Ответить  
 
 автор: belvesta   (02.04.2007 в 14:03)   личное сообщение
 
 

это все в обработку?

  Ответить  
 
 автор: belvesta   (02.04.2007 в 14:13)   личное сообщение
 
 

Пишу

DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "SELECT Мониторинг- FROM Date1 WHERE Date Between #04/3/07# And #27/03/07#"

Не выводится нужный диапазон
Мониторинг - это у меня название отчета. Date1 - поле, которое должно отфильтровываться.

  Ответить  
 
 автор: АлексейЕ   (02.04.2007 в 14:36)   личное сообщение
 
 

Из хелпа

"При указании аргумента условиеОтбора литералы даты (символы дат) должны вводиться !!! в американском формате !!! , даже если используется неамериканская версия ядра базы данных Jet. Например, дата 10 мая 1996 года записывается в России как 10.05.96, а в США как 5/10/96. Обязательно заключите даты в символы «решетки» (#),"

  Ответить  
 
 автор: ДрЮня   (02.04.2007 в 14:54)   личное сообщение
 
 

"SELECT Мониторинг- FROM Date1 ..."
выбрать дынные из таблицы "Мониторинг-"
из поля "Date1"

- у Вас есть такая таблица и такое поле в этой таблице?
- у Вас вообще формируется отчет, если оставить в таком виде:

DoCmd.OpenReport "Мониторинг-" & s, acViewPreview, "SELECT Мониторинг- FROM Date1"

  Ответить  
 
 автор: belvesta   (02.04.2007 в 15:12)   личное сообщение
 
 

Вот вся обработка, а Мониторинг это запрос
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

  Ответить  
 
 автор: час   (02.04.2007 в 15:22)   личное сообщение
 
 

А если создать запрос в конструкторе запросов.
Вначале вообще без условия с датами, а затем добавить одну дату и т.д.

  Ответить  
 
 автор: belvesta   (02.04.2007 в 15:34)   личное сообщение
 
 

куда этот хапрос потом? мне кажется, проще всего как-то с этими полями на форме TextBox1 и TextBox2

  Ответить  
 
 автор: час   (02.04.2007 в 16:01)   личное сообщение
 
 

Я имею ввиду попробовать найти в чём ошибка.
Там, при создании в построителе- всё наглядно.
и данные из этих полей тоже можно использовать в этом запросе, построив построителем в условии отбора путь к этим полям.
А потом кода всё заработае возьми этот SQL и суй в любое место кода...

  Ответить  
 
 автор: час   (02.04.2007 в 16:06)   личное сообщение
 
 

можно и не Between
А так >=data1 and <=data2

  Ответить  
 
 автор: АлексейЕ   (02.04.2007 в 16:28)   личное сообщение
 
 

belvesta, обратите внимание на мною расположенное выше сообщение.
Приведите даты к американскому формату, и заключите даты в символы «решетки» (#).

  Ответить  
 
 автор: belvesta   (08.04.2007 в 21:53)   личное сообщение
 
 

Никак у меня не получается. Этот американский формат не причем!
Что не так?

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

  Ответить  
 
 автор: palarm   (09.04.2007 в 02:16)   личное сообщение
19 Кб.
 
 

Вот так надо

  Ответить  
 
 автор: palarm   (09.04.2007 в 02:25)   личное сообщение
 
 

АлексейЕ сказал же - если вставляете дату программно, то ДАТУ в американский формат и в #. Зачем же Вы в #

Format([Forms]![Форма к мониторингу]![TextBox1], "mm\/dd\/yyyy")

втсавляете?

  Ответить  
 
 автор: belvesta   (09.04.2007 в 10:24)   личное сообщение
 
 

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

  Ответить  
 
 автор: palarm   (09.04.2007 в 12:09)   личное сообщение
 
 

Скиньте пример - таблицу и напишите, чего там надо вывести.

  Ответить  
 
 автор: belvesta   (16.04.2007 в 15:24)   личное сообщение
 
 

если я поля, в которые надо ввести дату, оставляю пустыми, то выскакивает ошибка. Что делать? Я написала так:

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

  Ответить  
 
 автор: belvesta   (16.04.2007 в 16:33)   личное сообщение
 
 

Теперь сделал так, ошибку не выдает, но результата тоже нет.

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList