Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Arisha
0 / 0 / 0
Регистрация: 24.10.2011
Сообщений: 18
#1

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

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

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

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

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

Запрос на прибавление месяца к дате - MS Access
Такой вопрос: Создал базу данных, в одной из таблиц базы имеется атрибут "Дата оплаты". Хочу сделать запрос, чтобы к этой "Дате Оплаты"...

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

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

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

4
Teslenko_EA
1164 / 617 / 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
1164 / 617 / 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
Привет! Вот еще темы с ответами:

Запрос на выборку месяца из даты рождения - MS Access
SELECT Основные.BirthDay, Основные.ФИО, Основные.Адрес, Основные.Телефон, Основные.Пол, Основные.Категория, Основные.Ставка FROM Основные...

Запрос, в котором будет проводится проверка по 15 числу каждого месяца - MS Access
нужно составить запрос в котором будет проводится проверка по 15 числу каждого месяца, если дата выше то нужно вывести строку с данными в...

Access: запрос клиентов, которые родились в первой половине месяца - MS Access
вопрос заключается в следующем, мне необходимо сделать запрос по дате, а именно, запрос клиентов, которые родились в первой половине...

Запрос: Напечатать самое распространённое имя - MS Access
Запрос: Напечатать самое распространённое имя.


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

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

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