Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Arisha
0 / 0 / 0
Регистрация: 24.10.2011
Сообщений: 18
1

Запрос-Имя месяца

04.11.2011, 14:22. Просмотров 1969. Ответов 4
Метки нет (Все метки)

Почему-то запрос не выполняется по имени месяца.
И еще вопрос по схеме данных,все ли нормально и как, например, сделать условие, что дата приема полиса от компании не должна быть позже даты выдачи полиса сотруднику.
0
Вложения
Тип файла: zip 111.zip (83.5 Кб, 44 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2011, 14:22
Ответы с готовыми решениями:

Запрос из даты месяца
Друзья, имеется череда таблиц: Сотрудники Поездки сотрудников Страны Суть...

Запрос по началу месяца
Проблема: есть база данных, нужно зделать запрос : название , количество товара...

Запрос по дате, на нахождение месяца
Как сделать чтобы месяц отображался словом январь и тд SELECT ., Month(!) AS...

Запрос плановые показатели месяца
Добрый день. Есть 2 таблицы, t1 и t2. В t1 есть поля vol1,sum1-vol12,sum12...

Запрос: остаток на конец месяца
Есть таблицы Материалы, Приход, Расход, Остаток на конец месяца. В таблицах...

4
Teslenko_EA
1165 / 618 / 37
Регистрация: 30.05.2010
Сообщений: 712
04.11.2011, 20:01 2
Здравствуйте Arisha.
"..запрос не выполняется по имени месяца.." : Вы не корректно используете функцию MonthName,
в качестве аргумента должна использоваться не дата, а номер месяца
MonthName(Month([П-п id]![d_sd_s]))

совет: т.к. первый аргумент функции MonthName не может быть NULL,
а в Вашей конструкции это возможно, применяйте для подобного преобразования функцию Format:
Format([d_sd_s],'mmmm')

"..по схеме данных,все ли нормально.." : дать верный ответ на этот вопрос можно только досконально зная предмет - задачу,
но увы это может знать только заказчик или автор конструкции, никак не участники форума.

"..например, сделать условие, ... дата приема полиса от компании не должна быть позже даты выдачи полиса сотруднику.." :
условие/ограничение на вводимые данные можно создать программно в форме ввода, либо задать его свойству поля таблицы
Цитата Сообщение от Teslenko_EA Посмотреть сообщение
поле ... с необходимым "ограничением"
но "пример" предложить не могу т.к. в таблицах Вашей БД нет упоминания о полях дата приема и дата выдачи
и о том в каких они таблицах, есть только подписи полей Дата получения и Дата сдачи.

мысль : таблицы БД предназначены для динамичного хранения данных, Ваша таблица месяц содержит имена месяцев - константы.
если изменить в контролах тип источника строк с Таблица или запрос на Список значений,
а в качестве источника строк установить строку:
"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"
необходимости в дополнительном объекте БД, таблице месяц не будет.


Успехов Вам.
Евгений.
1
Arisha
0 / 0 / 0
Регистрация: 24.10.2011
Сообщений: 18
04.11.2011, 22:08  [ТС] 3
Спасибо большое,Евгений,суть я поняла, но почему-то все равно не выходит с запросом. Не могли бы вы показать это на примере моей же бд.. может я что-то не туда заношу..

На счет ограничения. Мне надо, чтобы поле dt_poluch из таблицы Выдано Компанией было не позже поля dt_vidachi из таблицы прием-передача СБО, при введении соответствующего полиса. То есть операция с компанией проходит раньше операции с сотрудником, и при неправильно введенной дате должно выскакивать окно ошибки.

Если что-то непонятно написала-скажите, я только учусь
0
Teslenko_EA
1165 / 618 / 37
Регистрация: 30.05.2010
Сообщений: 712
04.11.2011, 23:33 4
Arisha, "..все равно не выходит с запросом.." :
1. в условии отбора Вашей конструкции есть ссылка на несуществующий объект [Forms]![Отчет]![ПолеСоСписком23]
2. условие отбора Count([П-п id].fakt_sd_s)=True так-же не верно т.к. True = -1, а результат Count (счет) в принципе не может быть отрицательным.

подобная корректировка сделает SQL конструкцию работоспособной:
SQL
1
2
3
4
5
6
7
8
SELECT [Прием-передача БСО].f_sotr, [Выдано Компанией].kod_komp, [П-п id].fakt_sd_s, 
SUM([П-п id].summa_s) AS [Sum-summa_s], MonthName(MONTH([П-п id]![d_sd_s])) AS Месяц
FROM [Прием-передача БСО] INNER JOIN (([Выдано Компанией] INNER JOIN Полиса 
ON [Выдано Компанией].ID = Полиса.id) INNER JOIN [П-п id] 
ON Полиса.n_polisa = [П-п id].n_pol) ON [Прием-передача БСО].= [П-п id].N
GROUP BY [Прием-передача БСО].f_sotr, [Выдано Компанией].kod_komp, [П-п id].fakt_sd_s, MonthName(MONTH([П-п id]![d_sd_s]))
HAVING ((([Прием-передача БСО].f_sotr)=[Forms]![Отчет]![ПолеСоСписком25]) 
AND (([П-п id].fakt_sd_s)=TRUE) AND ((MonthName(MONTH([П-п id]![d_sd_s])))=[Forms]![Отчет]![Поле20]));
"..dt_poluch из ... Выдано Компанией было не позже .. dt_vidachi из таблицы прием-передача..":
таблицы не имеют прямой связи и потому установка ограничения/зависимости не возможна.
Вариант решения с установкой ограничения в свойстве поля возможен только после корректировки структуры данных.
Иначе смотрите в сторону программного ограничения, т.е. кодом-обработчиком формы при вводе данных.

Евгений.

P.S. писать "..Спасибо большое.." совершенно не обязательно, достаточно нажать кнопку +1Спасибо в сообщении.
1
Arisha
0 / 0 / 0
Регистрация: 24.10.2011
Сообщений: 18
05.11.2011, 13:51  [ТС] 5
про кнопку знаю, но вроде 2 раза нельзя, хотела сделать это в конце)))
еще раз спасибо)

Добавлено через 33 секунды
значит можно)

Добавлено через 4 минуты
И
Цитата Сообщение от Teslenko_EA Посмотреть сообщение
"..dt_poluch из ... Выдано Компанией было не позже .. dt_vidachi из таблицы прием-передача..":
таблицы не имеют прямой связи и потому установка ограничения/зависимости не возможна.
Вариант решения с установкой ограничения в свойстве поля возможен только после корректировки структуры данных.
Иначе смотрите в сторону программного ограничения, т.е. кодом-обработчиком формы при вводе данных.
Именно поэтому я и спрашивала, как это можно сделать(
0
05.11.2011, 13:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2011, 13:51

Создать запрос о подписках за 3 месяца
На основе таблиц(подписчики, подписки, журналы) нужно создать данный запрос....

Запрос на прибавление месяца к дате
Такой вопрос: Создал базу данных, в одной из таблиц базы имеется атрибут "Дата...

Запрос чтобы выводилась дата и + 3 месяца
Подскажите пожалуйста как сделать: 1. Как сделать ограничение чтобы нельзя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru