Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
4 / 4 / 1
Регистрация: 20.11.2014
Сообщений: 44
1

Выборка по интервалу дат

11.12.2015, 11:54. Показов 4761. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Копаюсь по интернету уже несколько дней, не могу найти ответ.
Есть таблица по которой создана форма, по каждому столбцу в форме предусмотрен поиск функцией fpoisk
Visual Basic
1
2
3
4
5
6
7
8
Sub fpoisk()
Dim s1, s2
Me.Refresh
s1 = "true "
s2 = "" & Me.Поле93
If Len(s2) > 0 Then
s1 = s1 & " and  дата like '*" & s2 & "*'"
End If
Visual Basic
1
2
3
4
5
Private Sub Поле93_Change()
S0 = "" & Me.Поле93
Call fpoisk
Me.Поле93.SelStart = Len(S0) + 1
End Sub
В таблице есть столбец "ДАТА", появилась необходимость отбора писем по интервалу между двух введеных дат.
Запрос мне сделать удалось: WHERE (((Письма.дата) Between [DateBegin] And [DateEnd]));

Как прикрутить это к форме, чтобы даты считывались из полей ввода?

Может возможно изменить функцию fpoisk, чтобы при изменении первого поля даты (DateBegin) сразу сортировалось на всё что больше введенного значения, а при вводе второго поля (DateEnd) отображался уже интервал между двумя датами.


Ещё есть вопросик, подскажите по коду VB, есть поле с введеной датой, нужно сделать всплывающее окошко с неким текстом как только это значение будет равно текущей дате.

Заранее благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2015, 11:54
Ответы с готовыми решениями:

Выбор данных, соответствующих интервалу дат
Добрый день! Необходимо в конструкторе запроса в условии отбора прописать следующее условие:...

Выборка дат
Здравствуйте, есть две проблемы в базе данных, с которыми я не смог разобраться: В форме "продажа...

Выборка по диапазону дат
Здравствуйте! У меня возник вопрос и на сайте ответа я по поиску не нашла. Т.к. тут есть...

Выборка стоимости по вхождению в интервал дат
Доброго времени суток. В очередной раз обращаюсь к гуру за помощью. Что то сам ни как не соображу....

11
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
11.12.2015, 12:35 2
Цитата Сообщение от zudogav Посмотреть сообщение
Ещё есть вопросик, подскажите по коду VB, есть поле с введеной датой, нужно сделать всплывающее окошко с неким текстом как только это значение будет равно текущей дате.
1. На событие "После изменения" данного поля с датой вешаете код на проверку введенного значения на совпадение с текущей датой.
2. И если совпадает, то изменяете свойство ControlTipText данного поля на нужное вам сообщение о совпадении с текущей датой.
Это то, что первое в голову пришло. Правда, если подумать, то не совсем тот функционал получается, т.к. эта всплывающая подсказка будет выводиться только если навести курсор на элемент...

Добавлено через 7 минут
Как вариант, можно на совпадение дат прописать просто вывод MsgBox сообщения, да и все.
0
8 / 8 / 2
Регистрация: 21.12.2010
Сообщений: 51
11.12.2015, 21:27 3
Попробуй изменить
Код
s1 = s1 & " and  дата like '*" & s2 & "*'"
На вот такую:
Код
s1 = s1 & " and  format([дата],'dd.mm.yyyy') like '*" & s2 & "*'"
0
4 / 4 / 1
Регистрация: 20.11.2014
Сообщений: 44
15.12.2015, 11:48  [ТС] 4
Помогите с интервалом дат, пожалуйста!
0
шапоклякистка 8-го дня
3680 / 2240 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.12.2015, 12:37 5
Извините, у вас поле [дата] какой имеет тип данных?
0
4 / 4 / 1
Регистрация: 20.11.2014
Сообщений: 44
15.12.2015, 12:58  [ТС] 6
тип данных "дата/время"

Вопрос по выбору строк в интервале дат, запрос у меня сделан и работает, ввожу в поля на форме две даты, по кнопке запускаю запрос, но результат открвывается в новом окне. Как сделать чтобы результат запроса применялся к строкам на форме?
0
шапоклякистка 8-го дня
3680 / 2240 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.12.2015, 13:50 7
Если речь о той же форме, в которой выполняется код, то

Visual Basic
1
2
Form.Filter = "условие"
Form.FilterOn = True
Вместо слова условие нужно вставить условие отбора дат из того запроса, который у вас работает, причем обязательно из текста SQL, а не конструктора запросов (синтаксис разный). Кавычки оставить (они нужны).

Добавлено через 3 минуты
Если речь о вложенной форме в ту, в которой выполняется код, то

Visual Basic
1
2
Me.ИмяЭлементаВложеннойФормы.Form.Filter = "условие"
Me.ИмяЭлементаВложеннойФормы.Form.FilterOn = True
И, наконец, если речь о просто о какой-то форме, открытой в данный момент, то

Visual Basic
1
2
Forms("ИмяФормы").Filter = "условие"
Forms("ИмяФормы").FilterOn = True
0
4 / 4 / 1
Регистрация: 20.11.2014
Сообщений: 44
15.12.2015, 17:42  [ТС] 8
Сделал так, создал запрос filtrDATA

SQL
1
2
3
4
5
6
FROM Форма
WHERE (
[Форма].Дата
BETWEEN
([Forms]![Форма]![DateOt]) AND ([Forms]![Форма]![DateDO]) 
);
На форме два поля DateOt и DateDO. По нажатию кнопки:
Visual Basic
1
2
3
DoCmd.ApplyFilter "filtrDATE"
Me.Refresh
'Me.Requery

По промежутку дат фильтрует. Всем спасибо за помощь.
НО Есть один вопрос, как сделать чтобы этот фильтр не обнулял другие фильтры поиска по другим полям, функцию писал в начале. ПОМОГИТЕ с этим , Пожалуйста
0
9108 / 6037 / 590
Регистрация: 27.03.2013
Сообщений: 19,813
15.12.2015, 17:56 9
Цитата Сообщение от zudogav Посмотреть сообщение
...чтобы этот фильтр не обнулял другие фильтры поиска по другим полям...
Я вот лично ищу интервал дат просто запросом.
Типа как в этом простеньком примере:
Миниатюры
Выборка по интервалу дат  
Вложения
Тип файла: rar ВыборПоПериодуДат.rar (30.4 Кб, 60 просмотров)
0
шапоклякистка 8-го дня
3680 / 2240 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.12.2015, 21:32 10
Я прошу прощения, но что делает ваша процедура (это не функция) я не поняла вообще. Ряд присваиваений текстовым переменным, которое ничем не заканчивается. Где вы увидели поиск в ней?

Добавлено через 6 минут
Я просто не понимаю, что именно вы просите "не обнулять".

Тем не менее, попробуйте вместо вашего кода этот:

Visual Basic
1
2
3
4
5
6
if Form.Filter>"" then
    Form.Filter = Form.Filter & " AND Дата BETWEEN [DateOt] AND [DateDO]"
  else
    Form.Filter = "Дата BETWEEN [DateOt] AND [DateDO]"
end if
Form.FilterOn = True
Добавлено через 2 минуты
Это по нажатию кнопки. Вместо вашего DoCmd.ApplyFilter
1
Эксперт MS Access
7442 / 4576 / 301
Регистрация: 12.08.2011
Сообщений: 14,241
17.12.2015, 06:37 11
Visual Basic
1
2
3
4
5
6
if form.FilterOn and Form.Filter <>"" then
    Form.Filter = Form.Filter & " AND Дата BETWEEN [DateOt] AND [DateDO]"
  else
    Form.Filter = "Дата BETWEEN [DateOt] AND [DateDO]"
end if
Form.FilterOn = True
Немного дополню.
1
шапоклякистка 8-го дня
3680 / 2240 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
17.12.2015, 09:37 12
Цитата Сообщение от alvk Посмотреть сообщение
Немного дополню.
Логичное дополнение, но я специально не проверяю, был ли уже включен фильтр. Я поняла задачу так, что просят в любом случае не обнулять предыдущие фильтры.
0
17.12.2015, 09:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 09:37
Помогаю со студенческими работами здесь

Выборка дат нестабильна, выдаёт различное количество результатов
Здравствуйте! Имеется таблица с полем, в котором хранятся даты в полном формате (например,...

Выборка по диапазону дат, когда в исходных данных есть только год и месяц
Основной вопрос: Как правильно сделать выборку по диапазону дат, если в обрабатываемых данных...

Выборка диапазона дат в SQLLite
Имеется таблица с некоторым количеством столбцов с данными и одним столбцом с датой, хранимой в...

Выборка по интервалу дат методом POST
Здравствуйте! Имеется небольшая проблема: не могу корректно вывести нужные мне данные за...


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

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