powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Диапазон дат
11 сообщений из 11, страница 1 из 1
Диапазон дат
    #39605606
АляПопова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Ч-з API в рекордсет выводим отобранные данные. Доступны поля "С" "По", т.е. в эти поля вводим, напр., 01.01.2018 и 10.01.2018 и получаем все записи с 1 по 10 января включительно.
Как красиво\оптимально сделать так, чтобы в поле со списком выбирать месяцы, а в итоге получать диапазон дат указанного месяца (с 1 по последний день) применительно к текущему году?
Может есть какие-нибудь красивые решения? Мне кроме тупой подстановки ничего в голову не приходит.. :(
Буду признательна за любые решения\идеи.
...
Рейтинг: 0 / 0
Диапазон дат
    #39605624
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Тупая подстановка" - слишком многогранное понятие, чтобы догадаться, о чём именно речь...

Но если нужно сравнить с неким набором месяцев текущего года - то разумнее отфильтровать отдельно по году, и отдельно по месяцу. Ну типа
Код: sql
1.
2.
WHERE Year(datefield) = Year(Date())
  AND Month(datefield) IN (months list)
...
Рейтинг: 0 / 0
Диапазон дат
    #39605629
АляПопова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, спасибо, но фильтровать я не могу (не знаю как, WHERE... лепить не к чему). Данные получаем ч-з АПИ, в котором только два поля фильтра и больше ничего. В итоге получаем значения нескольких полей и все..
...
Рейтинг: 0 / 0
Диапазон дат
    #39605636
АляПопова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, по "тупой подстановке" ничего кроме типа

Case "январь"
me.Dat1=...
me.Dat2=...

не приходит
...
Рейтинг: 0 / 0
Диапазон дат
    #39605672
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
Function my(mynum) 'номер месяца
Dim start
start = "1." & mynum & "." & Year(Date)
my = "с " & start & " по " & DateAdd("m", 1, start) - 1
End Function

Код: vbnet
1.
2.
?my(2)
с 1.2.2018 по 28.02.2018

Допилите сами
...
Рейтинг: 0 / 0
Диапазон дат
    #39605673
а так?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
Public Function LastDayOfMonth(y%, m%) As Date
    LastDayOfMonth = DateSerial(y, m + 1, 1) - 1
End Function



Код: vbnet
1.
2.
?lastdayofmonth(year(date),2)
28.02.18 
...
Рейтинг: 0 / 0
Диапазон дат
    #39605944
littl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот то что искал!!!
А вот как первый день по указанию номера месяца можно получить
...
Рейтинг: 0 / 0
Диапазон дат
    #39605956
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем лишние телодвижения с вычитаниями? когда вполне работоспособно
Код: vbnet
1.
2.
3.
Public Function LastDayOfMonth(y%, m%) As Date
    LastDayOfMonth = DateSerial(y, m + 1, 0)
End Function
...
Рейтинг: 0 / 0
Диапазон дат
    #39606223
littlвот то что искал!!!
А вот как первый день по указанию номера месяца можно получить
Ну неужели не понятно?

DateSerial(y, m, 1)
...
Рейтинг: 0 / 0
Диапазон дат
    #39606454
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может пригодится Количество дней в месяце, последний день месяца, високосный год и т.д. сборник разных методов и способов от участников форума
...
Рейтинг: 0 / 0
Диапазон дат
    #39606616
АляПопова
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо, все получилось
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Диапазон дат
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (8): Анонимы (5), Yandex Bot, Bing Bot, Cat2 2 мин.
x
x
Закрыть


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