powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как задать промежуток дат в запросе select
12 сообщений из 37, страница 2 из 2
Как задать промежуток дат в запросе select
    #39842444
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar,
Вот лично я не могу понять откуда такая упертость-Вам показали как получить желаемый резуьтат (я и "пенсионерка"),на худой конец вполне реально,сделать источником запрос с параметрами(и форму для их ввода,или пусть запрашивает в штатных диалогах).Нет мы будем все усложнять! Или вы считаете что чем больше кода+вложенный запрос тем "круче",хотя чем меньше кода и "телодвижений",я и многие другие так считают, "это круто"
как же процедура будет работать верно,если в строке SQL(SELECT) никак не фигурируют даты, а почему они в строку не попадают Вы не объясняете(в первую очередь себе)
За сим откланиваюсь и хочу пожелать успехов в борьбе со сложностями,которые искусственно создаются и не удачно преодолеваются
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842465
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, услышал.

Дело в том, что я ищу оптимальное решение.
БД рас положена на удаленном сервере.
Вы предложили загрузить в форму все данные, а потом фильтровать, но их десятки тысяч строк и это будет оч долго.

Поэтому я ищу вариант как сначала запросом отобрать данные, а потом к форме подключить источник данных.
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842487
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
итого задачу решил через функцию DISTINCT, пришлось убрать GROUP BY

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
strSQL = "select * " _
            & "from z_tab_search_consumer " _
            & "where id_consumer > 0" _
            & nd _
            & ul _
            & fl _
            & inn_n _
            & cp _
            & ao
        

        strSQL1 = "select DISTINCT id_consumer, name_consumer, inn_consumer " _
            & "from " _
            & "(" _
            & strSQL _
            & ") " _
            & "where id_consumer > 0"
            
            Debug.Print strSQL1
    

    DoCmd.OpenReport "o_tab_search_consumer", acViewReport
    Reports.o_tab_search_consumer.Report.RecordSource = strSQL1
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842499
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тех кто в танке:sdku.....,на худой конец вполне реально,сделать источником запрос с параметрами....Если это не оптимально то я английская королева
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842516
quickstar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, не сердчайте.
я искренне не понимаю, что такое запрос с параметрами. я же его и сделал.
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842537
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar,
поясняю:в свойствах отчета,в строке источник данных пишете имя запроса(или инструкцию SQL,не создавая объект-запрос) создав форму для ввода параметров а в запросе в строке условия отбора написав ссылку на неё и фсё....
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842546
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar,

возможно забыли пробелы перед ключевыми словами, добавьте debug.print
strSQL = "select * " _
& " from z_tab_search_consumer " _
& " where id_consumer > 0" _
& nd _
& ul _
& fl _
& inn_n _
& cp _
& ao
debug.print strsql

strSQL1 = "select * " _
& " from " _
& " (" _
& strSQL _
& ") " _
& " where id_consumer > 0 " _
& " GROUP BY id_consumer;"
debug.print strsql 1
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39842547
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или
strSQL1 = "select w.* " _
& " from " _
& " (" & strSQL & ") w " _
& " where w.id_consumer > 0 " _
& " GROUP BY w.id_consumer"
debug.print strsql1
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39843598
Андрей_pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
У меня есть переменная w2 , которой присваивается следующее значение

Код: vbnet
1.
w2 = "and Date_KPA Between #" & Format(Me.Дата_c.Value, "mm\/dd\/yyyy") & "# and #" & Format(Me.Дата_по.Value, "mm\/dd\/yyyy") & "#"


Все прекрасно работало до определенного момента. Потом вдруг стала появляться ошибка type mismatch. Поле на форме имеет формат: краткий формат даты. Переменная объявлена. Никаких изменений формы не было.
Упростил конструкцию до

Код: vbnet
1.
d1 = Format(Me.Дата_c.Value, "MM\/DD\/YYYY")


но все равно ошибка
Пытался искать решение на форумах, но везде информация про функцию format, которая пользователям помогала, но я ее и так применяю.
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39843640
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
quickstar....Вы предложили загрузить в форму все данные, а потом фильтровать, но их десятки тысяч строк и это будет оч долго....
Не выдумывайте-я предложил создать свободную(не содержащую никаких данных) форму с полями в которые вводятся критерии и кнопкой-основываясь на значениях этих полей создать запрос, запустить его,нажав на кнопку и уже запрос(инструкция SQL) извлечет только нужные Вам данные-как-то так:
Код: vbnet
1.
2.
3.
 "SELECT ctl,ctl1,ctl2 FROM tbl WHERE ctl=" & me.полеФормыЧисло &
 " and ctl1>=#" & format(me.полеФормыSдата,"mm\/dd\/yy" & "# and ctl1<=#" & format(me.полеФормыPOдата,"mm\/dd\/yy")
 & "# and ctl2='" & me.полеФормыTекст & "'"

и т.д до 32000 символов(упаси меня, господь, от такого). В таблице ctl-число,ctl1-дата,ctl2-текст.Рекомендую прочесть HELP про свойство SQL и изменять его у существующего запроса
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39843652
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати,если id_consumer ключ-счетчик,то id_consumer>0 всегда TRUE и зачем это поле в критерии?
...
Рейтинг: 0 / 0
Как задать промежуток дат в запросе select
    #39844102
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаете в БД запрос(простейший) с именем "gru",форму для ввода параметров и можете на экране видеть любую выборку (на форме можно разместить список содержащий отображаемые данные и в зависимости от выбора в списке менять инструкцию SQL) в БД будет храниться один запрос а не 10
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Кнопка2_Click()'событие выберите сами
Dim rpt As QueryDef
Set rpt = CurrentDb.QueryDefs("gru")
rpt.SQL = "select dogovor from tbl where dogovor<" & Me.Поле0 'эту инструкцию менять, в зависимости от выбора
DoCmd.OpenQuery "gru"
End Sub
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как задать промежуток дат в запросе select
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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