MS Acess SQL - где пункт, чтобы получить год от даты на основе года - данные, расположенные в форме доступа MS - PullRequest
0 голосов
/ 19 апреля 2010

ОК, вернемся снова. У меня проблема с получением выпадающего списка для заполнения на основе информации в двух полях.

У меня есть правильный SQL в отношении Select всего за один год, если я поставлю DateValue ('01 / 01/2001 ') в обоих местах, но сейчас я пытаюсь получить его для получения данных за год от MS Форма доступа - еще один выпадающий список с именем "cboYear".

Я бы не хотел делать что-то в VB, если не нужно.

до сих пор я получил это, чтобы подтянуть что-то (это всегда неправильно)

SELECT DISTINCT Database_New.ASEC
FROM Database_New
WHERE Database_New.Date>=DateValue('01/01/' & [cboYear]) 
      And Database_New.Date<=DateValue('12/31/' & [cboYear]);

и

SELECT DISTINCT Database_New.ASEC
FROM Database_New
WHERE Database_New.Date>=DateValue('01/01/' + [cboYear]) 
      And Database_New.Date<=DateValue('12/31/' + [cboYear]);


SELECT DISTINCT Database_New.ASEC
FROM Database_New
WHERE Database_New.Date>=DateValue('01/01/' AND [cboYear]) 
     And Database_New.Date<=DateValue('12/31/' AND [cboYear]);

оба дают ошибки, говоря, что это слишком сложно для вычисления.

Наверное, что-то простое, но куда мне идти отсюда?

изменение / дополнение

полностью отключен - да, извините за это

cboYear не связан ни с чем, он просто отображает отчетливые годы, доступные в базе данных, Ex - 2001, 2002, 2003 - всего 4 цифры.

Ответы [ 2 ]

3 голосов
/ 19 апреля 2010

Что именно является значением [cboYear]? Например, содержит ли свойство ComboBox Value четырехзначные числовые значения?

Это работает?

SELECT DISTINCT Database_New.ASEC
FROM Database_New
WHERE Year(Database_New.Date) = [cboYear];
0 голосов
/ 19 апреля 2010

Другое решение, которое вы можете попробовать:

SELECT DISTINCT Database_New.ASEC
FROM Database_New
WHERE Database_New.Date>= DateSerial([cboYear], 1, 1) 
      And Database_New.Date<= DateSerial([cboYear], 12, 31);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...