![]() |
|
Модераторы: Akina |
![]()
|
|
| Flex1981 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
Есть такая проблема... в базу данных вносятся договора. № договора складывается из 2-х последних цифр года и счетчика.... Пример: текущий год 2006, запись по счетчику № 3498 в итоге получается № договора 06/3498, как сделать так, чтобы с наступлением нового года счетчик обнулялся, и нумерация договоров начиналась с записи 07/0001?
|
|||
|
||||
| Shiny |
|
|||
![]() разбойница ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 18.9.2006 Где: Киев Репутация: нет Всего: 6 |
А у тебя счётчик в текстовом поле хранится?
|
|||
|
||||
| Flex1981 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
нет в текстовом поле сохраняется № договора... а счетчик в отдельном!
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Я рекомендую номер договора не делать полем счетчика. поле счетчика сам по себе, а номер договора (в пределах года) сам по себе. Под номером договора понимается само число. номер договра с годом (год/номер) хранить в отдельном текстовом поле. Формировать номер договра при добавлении (на событии после добавления).
Во многих случаях пользователь хочет поменять номер договора. Поле счетчика индексируется с запретом повторных значений. Выводить договра в отчете и на формах придется с сортировкой: год, номер договора. При этом если пользователь поменяет формат вывода номера: реализовать это будет проще. |
|||
|
||||
| Flex1981 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
Спасибо за совет! но вот я не совсем представляю как это всё выразить в VBA. А именно как увеличить номер предыдущей записи на единицу после какого то события! Вот в том то как раз и проблема если б знал как это сделать то Счётчик бы практически не использовал... Кстати, кто нибудь может подсказать вот что: после удаления записи в таблице используещей счетчик для нумерации строк, можно ли каким то образом удаленноё число использовать ещё раз... ну для того чтобы не было разрывово в нумерации? Заранее всех благодарю! |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
Flex1981,
наверное, не предыдущей, а последующей - для этого для поля таблицы, хранящей номер договора, нужно в свойствах поставить "последовательные значения" (кажется так, сейчас пишу из дома под Linux, акцесса, ессно, нет). Хранить номер договора в связке с годом в одном поле в текстовом виде - не вижу смысла - проще в двух разных полях. Кроме того, в таблице нужно поле типа Boolean с именем "Удалён" (Canceled). Тогда простым запросом можно будет сортировать договора и удалённые номера присваивать новым договорам, если это вообще нужно. С моей колокольни видны случаи, когда происходили разбирательства по "дохлым" договорам, а в конторе под этим номером уже числится совершенно другой договор. Даже если в начале года был срочный (в смысле, с ограниченнным и малым сроком) договор, давно исполненный и закрытый, не рекомендуется его номер присваивать другим договорам (спроси в юридическом отделе). Другой вариант, если нужно удалить ошибочно введённую запись. Тут два варианта - запись ещё не перекрыта, и запись перекрыта (после неё введен ещё один/несколько договор\ов). В первом случае - удаляешь запись и сжимаешь базу (счетчик вернётся к наименьшему значению), во втором - хуже. Ведь номер договора - это не только внутренний учётный номер в таблице/книге регистрации, а и важный реквизит документа. Может потребоваться перезаключение последних введённых договоров. |
|||
|
||||
![]()
|
| Правила форума "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. |