-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Получение списка дат для заданного интервала

Понедельник, 01 Декабря 2014 г. 13:05 + в цитатник
Доброго времени суток.

MS Access 2003.

Необходимо создать запрос, который для указанного интервала выводит список всех дат, включая обозначенные граничные значения. Т.е. к примеру, для диапазона с 01.01.2014 по 05.01.2014 в списке должны присутствовать записи:

Ожидаемый результат
01.01.2014
02.01.2014
03.01.2014
04.01.2014
05.01.2014


В таблице tbChecks дате начала дипазона соответствует поле In, а дате конца диапазона - поле Back. Поскольку встроенных функций, выполняющих нужную мне операцию я не нашёл, то пришлось вспоминать VBA и писать пользовательскую функцию:
Option Compare Database
' Get the array of dates which are located in the range start_date to end_date.
' The result is an array of Date items.
Public Function GetDays(start_date As Date, end_date As Date)

If start_date > end_date Then
 ' end_date can't be less than start_date.
 GetDays = Null
 Exit Function
End If

Dim result() As Date
ReDim result(end_date - start_date + 1) ' including the range boundaries.

For i = start_date To end_date Step 1
    Dim n As Long
    n = i - start_date
    result(n) = i
Next i

    GetDays = result
End Function


SQL запрос выглядит следующим образом:
SELECT tbChecks.CheckId, tbChecks.[In], tbChecks.Back, GetDays([In],[Back]) AS Days FROM tbChecks;


Однако в поле Days я получаю #Ошибка в качестве значения. Правильно ли я понимаю, что в SQL запросах Access пользовательской функции запрещается возвращать массивы значений? Или же я напортачил в коде функции? Если второй вариант, то буду признателен за подсказку.

Спасибо.

http://www.sql.ru/forum/1129826/poluchenie-spiska-dat-dlya-zadannogo-intervala


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку