LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Обнуление...
 Тема: Обнуление счетчика
 
 15.06.2007 19:52:35
All
4316 сообщения
1-ый


Тема: Обнуление счетчика
Подскажите чайнику - в таблице поле - "Счетчик". Набрано 8 записей. после их удаления при наборе новых записей счет идет с 9 и дальше. Как обнулить счетчик?


P.S. Программирование в Access
Автор: Вопрос 1 от 0:00:00 Источник ...
 15.06.2007 19:52:36
All
4316 сообщения
1-ый


RE: Обнуление счетчика
Вопрос сложный. Access не даст Вам изменить поле счетчика ручным или программным способом. Выход заключается в том, что необходимо уничтожить старое поле "Счетчик", а потом создать новое. Недостаток такого способа - рост размера базы данных. Пример создания и удаления счетчика приведен в программе la_table.mdb.
P.S. Теоретически и практически возможно изменение счетчика, минуя ядро Access, но для этого необходимо знать структуру mdb файла. Я никогда в разработках не использую поле счетчик, а стараюсь генерировать уникальный номер с помощью собственной функции.


P.S. Программирование в Access
Автор: Виктор Конюков от 0:00:00 Источник ...
 15.06.2007 19:52:36
All
4316 сообщения
1-ый


RE: Обнуление счетчика
Проделайте опыт. Создайте две одинаковые таблицы. Пусть у нас в одной ключ типа счетчик меняется от 1 до 8, а во - второй - остальные записи, скажем от 9 до 20. Если написать запрос на вставку строки из первой во вторую таблицы с ключом равным 2, то запись добавиться! При это структура счетчика ломается, т.е. следующая строка, вставленная в первую таблицу приобретает ключ 3. Лечится только восстановлением или переливанием базы. Но само по себе переливание (создание новой базы и импорт в нее данных), кажется тоже обнуляет счетчик, в случае, если в таблице нет данных. Кстати, знаете ли Вы, что Access позволяет добавлять данные в таблицу с помощью операции UPDATE? Это кривой прием, но работает!


P.S. Программирование в Access
Автор: Читатель 1 от 0:00:00 Источник ...
 15.06.2007 19:52:36
All
4316 сообщения
1-ый


RE: Обнуление счетчика
Ответ неверный. Вот пример доступа к счетчику программным способом: a)создаем таблицу "test", б) поле RecordID - счетчик, primary index, в) поле Value - текстовое, по-умолчанию г) добавляем N записей, д) удаляем их, е) запускаем
Private Sub test1()
Dim Recs As Recordset
Set Recs = CurrentDb.OpenRecordset("test", dbOpenDynaset)
With Recs
.AddNew
!RecordID = -2
!Value = "test"
.Update
.Close
End With
End Sub
ж) лезем в таблицу и наслаждаемся результатом


P.S. Программирование в Access
Автор: Читатель 2 от 0:00:00 Источник ...
 15.06.2007 19:52:36
All
4316 сообщения
1-ый


RE: Обнуление счетчика
Я не совсем согласен с Вашим ответом на данный вопрос. В такой постановке вопроса есть два способа изменить значение счетчика:
1) После удаления записи(ей) произвести сжатие базы, тогда при добавлении новой записи счетчик примет значение [максимальное не удаленное значение]+1. Но тогда могут появиться "дырки" в нумерации;
2) Скопировать _структуру_ обрабатываемой таблицы (в этом случае счетчик устанавливается на 0), а затем скопировать туда существующие записи. Затем переименовать новую и удалить старую таблицы.
PS: Вообще-то подобные операции проводиться не должны, так как по полю "Счетчик" строятся связи (реляции) между таблицами, и пользователь _не должен_ видеть это поле. Оно СЛУЖЕБНОЕ, и предназначено только для построения отношений между таблицами!!! Если есть необходимость отображать/использовать какое-то числовое значение (скажем, для ускорения процесса выбора записи из справочника), то необходимо ввести "дополнительное" поле! Существование дополнительного поля позволит достигнуть гибкости и удобства в "интерфейсе", а "Счетчик" гарантирует ссылочную целостность базы данных. (Все это из моего *личного* опыта)


P.S. Программирование в Access
Автор: Читатель 3 от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Обнуление...
ПоискПоиск  Список форумовСписок форумов  
right