powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
10 сообщений из 10, страница 1 из 1
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323511
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, как решить следующую проблему:
Есть таблица с двумя полями: год и счетчик, нужно, чтобы для каждого нового года счетчик начинался заново (т.е. с 1). У меня данные начинаются с 1993г. по 2003, так вот, нужно, чтобы для следующего 2004 года записи для нового счетчика начинались с 1. Как разделить эту таблицу, чтобы для следующего года счетчик обнулялся? Я знаю только один вариант, создать 10 таблиц для каждого года со своим счетчиком :-( подскажите пожалуйста более логичное решение данной проблемы. :-)
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323522
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
FAQ. Что мы знаем про каунтеры (aka счетчики)
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323557
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я про это триггер написал. В случае с mdb можно написать функцию.
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323570
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нумератор для ADP

Код: plaintext
1.
2.
3.
4.
Public Function get_id()
Dim tm
tm = CurrentProject.Connection.Execute( "SELECT   isnull(max ( id ),0 )  AS ID from MYTABLE "  ).GetRows
get_id = tm( 0 ,  0 ) +  1 
End Function


соответственно по году будет

Код: plaintext
1.
2.
3.
4.
5.
Public Function get_id(Year_value as integer )
Dim tm
tm = CurrentProject.Connection.Execute _
( "SELECT   isnull(max ( id ),0 )  AS ID from MYTABLE where Year(FLD_DATE) = " & Year_value ).GetRows
get_id = tm( 0 ,  0 ) +  1 
End Function


быстро надежно и безотказно.
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323577
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
АлексейК писал:быстро надежно и безотказно.
Кроме того случая, когда юзеров больше одного.
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323589
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно, код не присваивает записи уникальное значение а сообщает юзеру очередное.

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

тем самым достигается не только уникальность счетчика но отсутствие дырок в нумерации ибо предполагаю что судя по вопросу автор топика интересуется нумератором для документов.
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323597
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч а как ты думаешь что лучше
создавать ADO рекордсет брать одно значение
затем прибивать его или GETROWS ?
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323599
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
:^) Если бы мне этот вопрос попался на экзамене, я бы провалился. Я никогда не пользовался GETROWS.
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32323615
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я сам себе ответил - проверил на 10 000 циклов

в случае с одной записью и в контексте данного вопроса
getrows медленнее примерно на 5%
...
Рейтинг: 0 / 0
Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
    #32325352
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, мысль хорошая.
То АлексейК:
Хотел уточнить, правильно ли я понял, что Вы предлагаете поставить свой программный код в поле "год" для формы, на событие After_update?
:-)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по relations! (Как разделить таблицу, чтобы для следующего года счетчик обнулялся?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]