Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 23.11.2024 02:51

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Формат № договора
СообщениеДобавлено: 21.09.2015 13:32 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
Здравствуйте!
Подскажите, как прописать № договора такого формата (###/##), при этом что бы первая цифра это был № по порядку, а вторая это № месяца? И при этом что бы в каждом следующем месяце № договора начинался с (01)?

Что бы вид был такой как на примере ниже?

№ договора Дата договора
01/09 03.09.2015
02/09 07.09.2015
03/09 07.09.2015
04/09 10.09.2015
05/09 12.09.2015
06/09 18.09.2015
07/09 20.09.2015
08/09 21.09.2015
01/10 01.10.2015
02/10 05.10.2015
03/10 08.10.2015
04/10 12.10.2015
05/10 15.10.2015


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 21.09.2015 14:02 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Лучше поле "Дата договора" поставить на первое место, т.к. "Номер договора" зависит напрямую от этой введенной даты.

Формула Значения по умолчанию:
SELECT RIGHT('0' & MAX(ContractNumber) + 1 & '/' & FORMAT(<ContractDate>, 'MM'), 5) FROM tblContracts WHERE FORMAT(ContractDate, 'YYYY-MM') = FORMAT(<ContractDate>, 'YYYY-MM')

Как-то так... тестировать надо.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 21.09.2015 14:25 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
Ivan писал(а):
Лучше поле "Дата договора" поставить на первое место, т.к. "Номер договора" зависит напрямую от этой введенной даты.

Формула Значения по умолчанию:
SELECT RIGHT('0' & MAX(ContractNumber) + 1 & '/' & FORMAT(<ContractDate>, 'MM'), 5) FROM tblContracts WHERE FORMAT(ContractDate, 'YYYY-MM') = FORMAT(<ContractDate>, 'YYYY-MM')

Как-то так... тестировать надо.



Поле "Дата договора" поставил впереди! В свойствах поля "№ договора" прописал формулу!
Но при добавлении новой записи в таблице, заполнение в форме, в ячейке № договора - ничего не прописывается, просто пустое место....

На данный момент, последняя запись в таблице "№ договора" - 18/09, "Дата договора" - 18.09.2015

Следующая запись должна быть, "№ договора" - 19/09, "Дата договора" - 21.09.2015


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 21.09.2015 14:29 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Тогда начните от простого к сложному в соответствии с типовым вопросом 46, постепенно усложняя формулу.
SELECT MAX(VAL(ContractNumber)) + 1 FROM tblContracts
работает?

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 07.10.2015 19:32 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
Ivan писал(а):
Лучше поле "Дата договора" поставить на первое место, т.к. "Номер договора" зависит напрямую от этой введенной даты.

Формула Значения по умолчанию:
SELECT RIGHT('0' & MAX(ContractNumber) + 1 & '/' & FORMAT(<ContractDate>, 'MM'), 5) FROM tblContracts WHERE FORMAT(ContractDate, 'YYYY-MM') = FORMAT(<ContractDate>, 'YYYY-MM')

Как-то так... тестировать надо.


данная формула не учитывает обнуление номера с начала нового месяца и года.

Пробовал:
"Значение по умолчанию": FORMULA: SELECT MAX(VAL(ContractNumber)) + 1 & '/' & FORMAT(<ContractDate>, 'MM') FROM tblContracts
"Условие отбора": FORMULA: IF CONDITIONTRUE SELECT max(FORMAT((ContractDate), 'MM')) < select Month(Date()) from tblContracts THEN CHANGEVALUE SELECT '01/' & FORMAT(Date(), 'MM') ELSE CHANGEVALUE <ЗначениеПоУмолчанию>

но тут не хватает ещё одного условия отбора. Может есть аналогичная формула на VBScript?
И как сослаться на предыдущее значение в таблице средствами SQL?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 08.10.2015 16:29 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Добавьте проверку на первое число месяца через конструкцию IIF()

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

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 08.10.2015 16:34 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Цитата:
И как сослаться на предыдущее значение в таблице средствами SQL?

SELECT ID FROM tblMain WHERE ID = <текущее значение ID> - 1

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 09.10.2015 08:30 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
А следующим будет вопрос: «А что так тормозит все?» :P

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 13.10.2015 03:33 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
OMEN писал(а):
А следующим будет вопрос: «А что так тормозит все?» :P

а должно ещё и затормозить? :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 13.10.2015 08:56 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
На слабом компе при большом количестве записей и наличии в представлении подзапросов — да, будут тормоза

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 14.10.2015 18:52 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
значит оптимизация оставляет желать лучшего)
при таком коде програмка вообще тихо умирает SELECT MAX(PaymentDate) FROM tblPayments HAVING Sum(PaymentAmount) > FieldgdsgCalc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 14.10.2015 19:26 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Денис писал(а):
значит оптимизация оставляет желать лучшего)
причем тут "программка"??? Это всего лишь оболочка, тормозит СУБД, то бишь MS Access, все претензии в Редмонд, штат Вашингтон.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 19.10.2015 09:35 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
В Access работает. Претензии не предъявлял ни разу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 19.10.2015 16:34 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Так никто и не говорил, что не будет работать! Речь шла о быстродействии выполнения подзапросов в Access при большом кол-ве записей.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Формат № договора
СообщениеДобавлено: 19.10.2015 20:44 
Не в сети

Зарегистрирован: 21.09.2015 13:04
Сообщения: 22
Дело в том что только в Access и работает, извиняюсь за оффтоп.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB