powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание таблицы с диапазоном дат
11 сообщений из 11, страница 1 из 1
Создание таблицы с диапазоном дат
    #39344705
Serega_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
В форме есть два поля "ДатаС" и "ДатаПо"
Как правильно написать запрос, чтобы он формировал таблицу "Календарь" с одним столбцом "Дата", а строками были даты от ДатаС по ДатаПо.
Например, ДатаС=01.01.2016, ДатаПо= 31.01.2016. Формировалась бы таблица "Календарь"
Дата
1 01.01.2016
2 02.01.2016
3 03.01.2016
...
31 31.01.2016
Этот запрос далее будет использоваться для построения других запросов
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344715
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serega_555,
Возможно не так понял вопрос, но смею Смиренно (Задолбали чморить полубоги ) предположить, что вот такой примерчик проканает.
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344724
vixxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serega_555,
Циклом пройтись по таблице, не?
Что бы за каждый раз делать запись с приращением...
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344771
Serega_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не то.
Смысл в том, что есть таблица "События", в которую заносятся события в какой-то день. Дни в таблице идут не по порядку, с разрывами. Например, за записью от 01.01.2016 может идти запись от 04.01.2016. Я хочу сделать запрос, используя желаемую таблицу "Календарь" и таблицу "События", чтобы в итоге сделать отчет по событиям за период, но с учетом пропущенных дней. Например при выборе отчета за период с 01.01.2016 по 07.012016 выводилась инфа:
01.01.2016 "Событие такое-то"
02.01.2016 "Событий нет"
03.01.2016 "Событий нет"
04.01.2016 "Событие другое-то"
Можно, конечно, тупо сделать таблицу "Календарь" на 100 лет вперед. Но задумка была создавать таблицу "Календарь" по периоду, дабы не забивать базу огромной таблицей
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344776
vixxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serega_555,
собственно я это и предложил....
в момент вывода информации, уже зная период отчета (дата начала и конца) запускаем цикл, который делает временную таблицу....
Итерация за период с приращением на каждом цикле на 1 сутки... Потом таблицу можно и удалить :)
ИМХО, ООООЧЕНЬ приближенно к сути первичного вопроса
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344782
Serega_555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vixxa,

а как программно это сделать? Прошу помочь с кодом
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344805
vixxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serega_555,
не видя базы - трудновато сказать конкретно...
FOR ... NEXT цикл
Внутри можно DoCmd.GoToRecord переход по записям (в зависимости от БД и предпочтений)
DateAdd - прирастить дату (основываясь на порядке цикла
Ну как-то так :)
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344832
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serega_555а как программно это сделать? Прошу помочь с кодом

а блок схема не подойдет ?
а то хз куда и как тебе это нужно писать...

Дата_старт = начальная дата
Дата_стоп = конечная дата
метка ЕЩЁ :
Записать в таблицу Дата_старт
Если Дата_старт = Дата_стоп То Выход
Иначе Дата_старт = Дата_старт + 1
Перейти на метку ЕЩЁ
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344850
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если без шуток, то как-то так
Код: vbnet
1.
2.
3.
4.
5.
6.
Public Sub diapazon(d1 As Date, d2 As Date)
Dim i As Long
For i = CLng(d1) To CLng(d2)
'Тут механизьмь записи CDate(i) в таблицу
Next i
End Sub
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344860
vixxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

+++
...
Рейтинг: 0 / 0
Создание таблицы с диапазоном дат
    #39344871
Serega_555Как правильно написать запрос, чтобы он формировал таблицу "Календарь" с одним столбцом "Дата", а строками были даты от ДатаС по ДатаПо. Получить непрерывный ряд чисел или дат можно с помощью широко известного посетителям сайта запроса digits . Вот первоисточник
Например:
Код: sql
1.
2.
SELECT Date()-999 + (D2.digit & D1.digit & D0.digit) AS d
FROM Digits AS D0, Digits AS D1, Digits AS D2;

Запрос возвращает 1000 дат по текущую.
Если в вашем запросе его связать (LEFT JOIN) с таблицей "События" и отфильтровать по диапазону дат - получите искомое.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание таблицы с диапазоном дат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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