Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Програмно обнулить счетчик при условии 
:(
    Опции темы
Flex1981
Дата 24.10.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Есть такая проблема... в базу данных вносятся договора. № договора складывается из 2-х последних цифр года и счетчика.... Пример: текущий год 2006, запись по счетчику № 3498 в итоге получается № договора 06/3498, как сделать так, чтобы с наступлением нового года счетчик обнулялся, и нумерация договоров начиналась с записи 07/0001? smile 
PM MAIL   Вверх
Shiny
Дата 24.10.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


разбойница
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 18.9.2006
Где: Киев

Репутация: нет
Всего: 6



А у тебя счётчик в текстовом поле хранится?
PM MAIL   Вверх
Flex1981
Дата 24.10.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



нет в текстовом поле сохраняется № договора... а счетчик в отдельном!
PM MAIL   Вверх
Akina
Дата 24.10.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

If Year(CurrentContract) > Year(PreviousContract) Then Counter = 0



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 25.10.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Я рекомендую номер договора не делать полем счетчика. поле счетчика сам по себе, а номер договора (в пределах года) сам по себе. Под номером договора понимается само число. номер договра с годом (год/номер) хранить в отдельном текстовом поле. Формировать номер договра при добавлении (на событии после добавления). 
Во многих случаях пользователь хочет поменять номер договора. Поле счетчика индексируется с запретом повторных значений. Выводить договра в отчете и на формах придется с сортировкой: год, номер договора. При этом если пользователь поменяет формат вывода номера: реализовать это будет проще.
PM MAIL WWW ICQ Skype GTalk   Вверх
Flex1981
Дата 31.10.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.10.2006

Репутация: нет
Всего: нет



Цитата

Я рекомендую номер договора не делать полем счетчика. поле счетчика сам по себе, а номер договора (в пределах года) сам по себе. Под номером договора понимается само число. номер договра с годом (год/номер) хранить в отдельном текстовом поле. Формировать номер договра при добавлении (на событии после добавления). 
Во многих случаях пользователь хочет поменять номер договора. Поле счетчика индексируется с запретом повторных значений. Выводить договра в отчете и на формах придется с сортировкой: год, номер договора. При этом если пользователь поменяет формат вывода номера: реализовать это будет проще. 



Спасибо за совет! но вот я не совсем представляю как это всё выразить в VBA.
А именно как увеличить номер предыдущей записи на единицу после какого то события! Вот в том то как раз и проблема если б знал как это сделать то Счётчик бы практически не использовал...

Кстати, кто нибудь может подсказать вот что: после удаления записи в таблице используещей счетчик для нумерации строк, можно ли каким то образом удаленноё число использовать ещё раз... ну для того чтобы не было разрывово в нумерации? 

Заранее всех благодарю!
PM MAIL   Вверх
dionisiu
Дата 31.10.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 13.5.2006
Где: Крым

Репутация: 1
Всего: 2



Flex1981, 
Цитата

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

наверное, не предыдущей, а последующей - для этого для поля таблицы, хранящей номер договора, нужно в свойствах поставить "последовательные значения" (кажется так, сейчас пишу из дома под Linux, акцесса, ессно, нет). Хранить номер договора в связке с годом в одном поле в текстовом виде - не вижу смысла - проще в двух разных полях. Кроме того, в таблице нужно поле типа Boolean с именем "Удалён" (Canceled). Тогда простым запросом можно будет сортировать договора и удалённые номера присваивать новым договорам, если это вообще нужно. С моей колокольни видны случаи, когда происходили разбирательства по "дохлым" договорам, а в конторе под этим номером уже числится совершенно другой договор.
Даже если в начале года был срочный (в смысле, с ограниченнным и малым сроком) договор, давно исполненный и закрытый, не рекомендуется его номер присваивать другим договорам (спроси в юридическом отделе).
Другой вариант, если нужно удалить ошибочно введённую запись. Тут два варианта - запись ещё не перекрыта, и запись перекрыта (после неё введен ещё один/несколько договор\ов). В первом случае - удаляешь запись и сжимаешь базу (счетчик вернётся к наименьшему значению), во втором - хуже. Ведь номер договора - это не только внутренний учётный номер в таблице/книге регистрации, а и важный реквизит документа. Может потребоваться перезаключение последних введённых договоров.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.