Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2011, 16:44   #1
gephaest
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 14
По умолчанию Узнать количество дней

Доброго времени суток. Access 2003.
Предметная область- отель. Нужно сделать запрос "Список клиентов, со сроком проживания больше чем <срок>.". У меня в таблице поля "Вселение" и "Выселение". Как собственно вывести кол-во клиентов, проживающих больше, чем некая дата? Сделать желательно через именно конструктор.
Изображения
Тип файла: jpg acc.jpg (29.6 Кб, 119 просмотров)
gephaest вне форума Ответить с цитированием
Старый 25.11.2011, 17:12   #2
gephaest
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 14
По умолчанию

Всё оказалось проще, чем я думал
Решил не парится и сделать в SQL (кто только придумал эти неудобные конструкторы
Код:
SELECT Клиенты.ФИО, Заселения.Вселение, Заселения.Выселение
FROM Клиенты, Заселения WHERE Клиенты.id_клиента = Заселения.id_клиента AND DateDiff("d", Заселения.Вселение, Заселения.Выселение)>5;

Можете закрывать
gephaest вне форума Ответить с цитированием
Старый 25.11.2011, 22:33   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте gephaest.
"..Можете закрывать.." - это значит, что Вас устраивает конструкция, уверяю она будет ещё лучше если всё-же установить связь между таблицами и убрать из условия отбора функцию DateDiff:
Код:
SELECT Клиенты.ФИО, Заселения.Вселение, Заселения.Выселение
FROM Заселения INNER JOIN Клиенты ON Заселения.id_клиента = Клиенты.id_клиента
WHERE (Заселения.Выселение - Заселения.Вселение) > 5
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 26.11.2011, 18:41   #4
gephaest
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 14
По умолчанию

Спасибо!
Оказалось, что требуется не определенное условие сделать, а такое, чтобы пользователь сам вводит, т.е. в моем примере срок устанавливает пользователь. Как это организуется?
gephaest вне форума Ответить с цитированием
Старый 26.11.2011, 23:10   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте gephaest.
"..срок устанавливает пользователь..": существует понятие Запросы с параметрами, вот такая конструкция и должна использоваться
Код:
PARAMETERS Срок Short;
SELECT Клиенты.ФИО, Заселения.Вселение, Заселения.Выселение
FROM Заселения INNER JOIN Клиенты ON Заселения.id_клиента = Клиенты.id_клиента
WHERE (Заселения.Выселение - Заселения.Вселение) > [Срок]
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 27.11.2011, 14:51   #6
gephaest
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 14
По умолчанию

В другом запросе требуется вывести людей, заезжавших за последний год. Я пробывал сделать так в условии:
Код:
>=Data()-365 AND <=Data()
Не работает.
gephaest вне форума Ответить с цитированием
Старый 27.11.2011, 22:37   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте gephaest.
"..пробовал сделать так в условии.. AND <=Data() "
1. Data() в наборе функций MS Access не существует, применяется функция Date().
2. выражение не верно построено, должно быть так:
WHERE [ИмяПоля]>=Date()-365 AND [ИмяПоля]<=Date()
или так:
WHERE [ИмяПоля] Between Date()-365 And Date()

"..В другом запросе требуется.." - придерживайтесь правила, один вопрос = одна тема

Успехов Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 28.11.2011, 18:47   #8
vas1970
 
Регистрация: 11.10.2011
Сообщений: 5
По умолчанию

Здравствуйте Евгений.
Прошу Вас как профессионала о помощи в решении вопроса по форме Access. Просмотрел почти половину сообщений и ответов на них, но ответа на свой вопрос так и не нашел. Помогите пожалуйста с формой или подскажите в какую сторону копать...
vas1970 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество дней недели в периоде Fox River Microsoft Office Excel 6 10.12.2011 22:53
количество дней в месяце (январь-31) ramzan_s Microsoft Office Excel 4 29.06.2011 16:00
количество рабочих дней в месяце. RKS Общие вопросы Delphi 6 30.10.2010 08:00
количество дней denis_stell Помощь студентам 4 11.04.2010 00:28
Помогите подсчитать количество дней komar73 Microsoft Office Excel 2 09.02.2009 09:54