Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
1
MS Access

Date between sql запрос

22.01.2018, 19:18. Показов 5446. Ответов 30
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста решить проблемку с кодом.
Имеется база данных сделанная в access.В базе имеется таблица с исключёнными участниками дачного кооператива.
В таблице есть поле dateiskl,в которое и заносится инфа,кого и когда исключили (тип данных Дата и Время,формат поля краткий)
Суть проблемы:я хочу реализовать поиск исключённых участников,который будет осуществляться по нажатию на кнопку,которая,в свою очередь,формирует запрос и берёт для сравнения первую и вторую даты из TEdit и выводит список людей,исключённых в заданный временной промежуток.
При нажатии на кнопку вылетает ошибка синтаксиса в запросе.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TCoopIskl.Button1Click(Sender: TObject);
begin
if (Edit1.Text='') or (Edit2.Text='') then
showmessage('Заполните поля для поиска!')
else
begin
DataModule.ADOQuery3.SQL.Clear;
DataModule.ADOQuery3.SQL.Add('SELECT * FROM IsklChleni WHERE dateiskl between #+Edit1.Text+# and #+Edit2.Text+#');
DataModule.ADOQuery3.Active:=true;
IsklSearch.DBGrid1.Columns[0].Width:=60;
IsklSearch.DBGrid1.Columns[1].Width:=200;
IsklSearch.DBGrid1.Columns[2].Width:=112;
if DataModule.ADOQuery2.IsEmpty then
Showmessage('Ничего не найдено');
end;
end;
 
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2018, 19:18
Ответы с готовыми решениями:

Запрос на DATE и TIME .. я в затруднении..
Дана таблица,которая имеет два поля: DATE (дата) TIME (время) Необходимо написать...

Тип данных DATE в MS SQL 2012
Столкнулся с такой проблемой. В Таблице поставил тип данных DATE. Создал процедуру для ввода данных...

SQl запрос Date
Добрый день. Подскажите пожалуйста как создать sql запрос с DISTINCT, чтобы дата не входила в...

SQL-запрос к переменной типа Date
примерно dim f as date sql="select * from where = #"&f&"# "`возвращает пустой запрос пробывал...

30
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
22.01.2018, 22:54  [ТС] 21
Author24 — интернет-сервис помощи студентам
Massaraksh7, я ж только начинаю постигать,чего прикалываться-то
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
22.01.2018, 23:01 22
Выложите свой проект, так будет быстрее.
0
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
22.01.2018, 23:05  [ТС] 23
Алекcей,
Вложения
Тип файла: rar Projects.rar (3.69 Мб, 6 просмотров)
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
22.01.2018, 23:19 24
Завтра утром посмотрю.
0
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
22.01.2018, 23:21  [ТС] 25
Алекcей, спасибо вам!
0
Айлурофил
441 / 375 / 107
Регистрация: 27.05.2017
Сообщений: 2,155
Записей в блоге: 1
23.01.2018, 00:46 26
Цитата Сообщение от Jenek114 Посмотреть сообщение
...
Бегло глянул проект:
У AdoQuery3 параметры не созданы, из-за этого ошибка.
Dbgrid1 вообще ни к чему не привязан, естественно, он всегда пустой будет.
0
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
23.01.2018, 01:26  [ТС] 27
Massaraksh7, где тогда задавать параметры для query и к чему вязать грид?
0
Айлурофил
441 / 375 / 107
Регистрация: 27.05.2017
Сообщений: 2,155
Записей в блоге: 1
23.01.2018, 02:03 28
Если у вас dbgrid1 для adoquery3, то к нему и надо подвязывать. Параметры для query надо создать (не задавать, задаете вы их в коде) в инспекторе query.
Вообще, структура программы неудачная, там долго можно ошибки вылавливать.
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
23.01.2018, 10:57 29
Лучший ответ Сообщение было отмечено Jenek114 как решение

Решение

замените свой обработчик Button1Click, на вот это
Delphi
1
2
3
4
5
6
7
8
procedure TCoopIskl.Button1Click(Sender: TObject);
begin
  with DataModule.TIsklChleni do begin
    Filtered:=False;
    Filter:='(dateiskl>='+DateToStr(dat1.DateTime)+') and (dateiskl<='+DateToStr(dat2.DateTime)+')';
    Filtered:=True;
  end;
end;
1
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 14
23.01.2018, 14:30  [ТС] 30
Алекcей, как доберусь до компа с проектом попробую

Добавлено через 22 минуты
Алекcей, остаётся только сделать функцию чтобы после отображённого результата поиска в гриде отображался весь список. Ну грубо говоря убрать результаты и вернуться обратно к полному списку. То,что вы предложили изменить в коде работает.

Добавлено через 17 минут
В общем-то проблема решена,дальше буду сам думать.
Спасибо всем!
0
548 / 479 / 190
Регистрация: 11.12.2013
Сообщений: 2,494
23.01.2018, 14:35 31
Лучший ответ Сообщение было отмечено Jenek114 как решение

Решение

добавьте кнопку "Снять фильтр" и ее обработчик будет такой:
Delphi
1
  DataModule.TIsklChleni.Filtered:=False;
и покажутся все записи
1
23.01.2018, 14:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2018, 14:35
Помогаю со студенческими работами здесь

Как сформировать запрос SQL с Date
Есть таблица, нужно чтобы выводились на экран записпи с у которых есть еще три дня до опредленного...

SQL запрос, как сконверитировать date из input в datetime
В базе данных время хранится в формате datetime. В форе запроса данные приходят в формате date (как...

Запрос SQL к Access через переменную типа date
Уважаемые коллеги, прошу помощи, не могу выполнить запрос к Access 2000 из ASP. Так работает: sql...

Поправить SQL запрос. Временное условие (SELECT with date condition)
Помогите создать два запроса: 1) Запрос, который бы выбирал данные за прошлую неделю, т.е за семь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru