![]() |
|
Модераторы: Akina |
![]()
|
|
| broker_001 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
ДОбрый день. запутался. помогите пожалста.
Приходит клиент и чтоб вручную не проверять ликвидность паспорта, появилась необходимость проверить при добавлении клиента в базу. есть поля дата рождения UserBirthDate ДД.ММ.ГГГГ Дата выдачи паспорта PassportDate ДД.ММ.ГГГГ возраст UsersYearsCalc INT((NOW - [UserBirthDate]) / 365) паспорт надо менять в 20 и 45 лет. тут то и началась путаница |
|||
|
||||
| broker_001 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
Логика такая
=ЕСЛИ(И(NOW>=(NOW-(UserBirthDate+20));NOW<=(NOW-(UserBirthDate+45)));ЕСЛИ(И(PassportDate<(NOW-(UserBirthDate+45));PassportDate>(NOW-(UserBirthDate+20)));"valid";"invalid");ЕСЛИ(И(NOW>(NOW-(UserBirthDate+45));PassportDate>=(NOW-(UserBirthDate+45)));"valid";ЕСЛИ(И(NOW>(NOW-(UserBirthDate+14));NOW<(NOW-(UserBirthDate+20));PassportDate<(NOW-(UserBirthDate+20)));"valid";"invalid"))) дата выдачи у нас есть в 14 20 45 лет. это код я сделал в ексель как его в мускул переделать? Это сообщение отредактировал(а) broker_001 - 28.10.2012, 13:05 |
|||
|
||||
| broker_001 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
поменял синтаксис ошибка всеравно
IIf (OR (NOW>=(NOW-(UserBirthDate+20)), NOW <=(NOW - (UserBirthDate+45))), IIF (OR (PassportDate <(NOW-(UserBirthDate+45)), PassportDate > (NOW-(UserBirthDate+20))), 'valid','invalid'), IIF (OR (NOW>(NOW-(UserBirthDate+45)), PassportDate>=(NOW-(UserBirthDate+45))), 'valid', IIF(OR(NOW>(NOW-(UserBirthDate+14)), NOW<(NOW-(UserBirthDate+20)), PassportDate<(NOW-(UserBirthDate+20))), 'valid', 'invalid'))) |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Excel, MySQL... а какого лешего тема создана в MS Access? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| broker_001 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
логику я сделал в екселе (что работает) мне сейчас эту же формулу надо сделать в акцесс
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
broker_001, напиши пользовательскую функцию проверки валидности паспорта. Передавай ей дату рождения, дату выдачи паспорта, и считай, валиден он или нет.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| broker_001 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.7.2007 Репутация: нет Всего: нет |
Эх, я бы знал как. я знаю что самое простое в запросе указать sql запрос
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
А в чём сложности?
Берём текущую дату и дату рождения, получаем возраст клиента. Исходя из возраста, считаем самую раннюю из возможных дат выдачи ему паспорта, чтобы он был ещё валиден. Полученную дату сравниваем с датой выдачи. Если выдано раньше - посылаем нафиг. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Модератор: Сообщение скрыто. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Для вычисления такого выражения стоит использовать процедуру. А еще лучше держать такой код не на сервере, а на клиенте.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Я думаю, и там, и там. На клиенте - в порядке входного контроля. На сервере - в порядке поддержания целостности и непротиворечивости информации. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |