powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос с параметрами из данных формы.
8 сообщений из 8, страница 1 из 1
Запрос с параметрами из данных формы.
    #39458205
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, необходимо в качестве источника данных для отчета сделать динамический запрос. на форме вызова отчета должно быть реализовано условия фильтрации для вывода данных.
например ограничение по датам.

Вот то что прописано на открытие отчета

Код: 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.
Private Sub Report_Load()


Dim db As DAO.Database
Dim rstData As DAO.Recordset
Dim strSQL As String
Dim rsQuery As DAO.QueryDef
Dim par1, par2 As DAO.Parameter

   SELECT т1.поле1 т2.поле 2, т2.поле3, т1.поле4 FROM т1, т2" _
   & " WHERE  т1.поле1 =  т2 .поле1 and  (т1.поле4>= [par1]) And ( т1.поле4 <=[par2]) 

For Each rsQuery In CurrentDb.QueryDefs
        If rsQuery.Name = "Запрос_" Then
              CurrentDb.QueryDefs.Delete "&#199;&#224;&#239;&#240;&#238;&#241;_"
           Exit For
        End If
    Next


Set rsQuery = CurrentDb.CreateQueryDef("Запрос_", strSQL)

  rsQuery.Parameters("par1").Value = CDate(Format(Forms![Форма].Dat1_, "mm\/dd\/yy"))
  rsQuery.Parameters("par2").Value = CDate(Format(Forms![Форма].Dat2_, "mm\/dd\/yy"))


Me.RecordSource = "Запрос_"
rsQuery.Close: Set rsQuery = Nothing
CurrentDb.Close
End Sub




мне нужно чтоб данные для параметров брались из значений указанных в форме "Форма" , а у меня почему то параметры запрашивает все равно, хотя значения параметров я указала в коде. Прошу указать на мою ошибку.
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458238
Если задача в том, чтоб на Report_Load присвоить запрос источнику строк отчета, то достаточно этого:
Код: vbnet
1.
2.
3.
4.
strSQL = "SELECT т1.поле1 т2.поле 2, т2.поле3, т1.поле4 FROM т1 INNER JOIN, т2 ON т1.поле1 = т2 .поле1" _
   & " WHERE (т1.поле4>= [Forms]![Форма].Dat1_) And ( т1.поле4 <=[Forms]![Форма].Dat2_)"  'хотя в этом условии уместнее Between

Me.RecordSource = strSQL



Что касается танцев с бубном вокруг QueryDef, то присвоение значений параметрам не меняет текст запроса и имеет смысл только перед выполнением OpenRecordset или Execute (для запросов на изменение).
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458255
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemerПрошу указать на мою ошибку.Ну что жжж...
tasha klemer
Код: vbnet
1.
Dim par1, par2 As DAO.Parameter

Это равноценно
Код: vbnet
1.
Dim par1 As Variant, par2 As DAO.Parameter


tasha klemer
Код: vbnet
1.
SELECT т1.поле1 т2.поле 2, т2.поле3, т1.поле4 FROM т1, т2" 

Это кому и куда? Должна быть текстовая переменная которой присваивается текст.
tasha klemer
Код: vbnet
1.
2.
3.
CurrentDb.QueryDefs.Delete "Запрос_"
...
CreateQueryDef("Запрос_", strSQL)

Зачем удалять всё время и создавать заново запрос, можно просто менять текст запроса - свойство SQL


Не проще ли, просто присвоить в конструкторе отчёта текст запроса и открывать отчёт
либо
Код: vbnet
1.
Docmd.OpenReport "Название", WhereCondition:="т1.поле1 =  т2 .поле1 and  (т1.поле4>= #" & Format(Me.Dat1_, "mm\/dd\/yy") & "#) And ( т1.поле4 <=#" & Format(Me.Dat2_, "mm\/dd\/yy") & "#) "


либо присваивать фильтр при открытии
Код: vbnet
1.
2.
3.
4.
Private Sub Report_Load()
Me.Filter="т1.поле1 =  т2 .поле1 and  (т1.поле4>= #" & Format(Forms![Форма].Dat1_, "mm\/dd\/yy") & "#) And ( т1.поле4 <=#" & Format(Forms![Форма].Dat2_, "mm\/dd\/yy") & "#) "
Me.FilterOn=True
End Sub
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458715
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь.
Воспользовалась вариантом с фильтром....
теперь нужно сделать сорртировку. Делаю как описано в примерах
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Report_Load()


Me.Filter = "Отказы.[Дата ]>=#" & Format(Forms![УсловияПечати].Dat1_, "mm\/dd\/yy") & "# And Отказы.[Дата ]<=#" & Format(Forms![УсловияПечати].Dat2_, "mm\/dd\/yy") & "#"
Me.FilterOn = True

Me.OrderByOn = False
If Forms![УсловияПечати].Группа10 = 1 Then
    Me.OrderBy = "Отказы.[Дата ] DESC"
ElseIf Forms![УсловияПечати].Группа10 = 2 Then
    Me.OrderBy = "НПС.НПС DESC"
End If
 Me.OrderByOn = True
Debug.Print Me.OrderBy;
 Me.Requery

End Sub




но сортировка не выходит.
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458845
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,
и не выйдет-Вы хотите изменить порядок сортировки для всего столбца который одновременно принадлежит ВСЕМ группам
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458852
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку-попробуйте подчиненный отчет с сортировкой и отбором в зависимости от группы
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458916
tasha klemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,а не могли бы вы раскрыть свою мысль подробнее...
...
Рейтинг: 0 / 0
Запрос с параметрами из данных формы.
    #39458939
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasha klemer,

как вариант --можно в запрос добавить дополнительные поля для сортироки и относительно их сделать отчет

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select client as sort1, dara_prodagi as sort2,.....,client,data_prodagi,tovar from tab1

или

select data as sort1, tovar  as sort2,.....,client,data_prodagi from tab1

или 

select client as sort1, tovar  as sort2,.....,client,data_prodagi from tab1

или 

select tovar as sort1,client  as sort2,.....,client,data_prodagi from tab1
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос с параметрами из данных формы.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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