Сброс значения поля "Счетчик" в Access
В этой пошаговой статье описывается сброс значения поля "Счетчик " в Access. Значение поля "Счетчик " в Access не сбрасывается автоматически при удалении некоторых строк или всех строк в таблице. Чтобы сбросить значение поля " Счетчик" и обновить значение счетчика в таблице, на которую указывает ссылка, необходимо вручную выполнить некоторые задачи.
Перед выполнением следующих действий необходимо создать резервную копию базы данных.
Сброс поля "Счетчик" в одной таблице
Если таблица не имеет связей с другими таблицами, используйте метод 1 или метод 2, чтобы сбросить значение поля "Счетчик".
Метод 1. Перемещение данных в новую таблицу с помощью Make-Table запроса
Значение поля "Счетчик" можно сбросить с помощью запроса Make-Table, чтобы создать таблицу с одинаковыми данными, а затем добавить новое поле "Счетчик".
Access 2003 и более ранних версий
Чтобы сделать это в Access 2003 или более ранней версии, выполните следующие действия.
- Удалите поле "Счетчик " из главной таблицы и запишите имя поля "Счетчик ".
- Щелкните "Запросы" на левой панели, а затем дважды щелкните "Создать запрос" в конструкторе на правой панели.
- В диалоговом окне "Показать таблицу" выберите главную таблицу, нажмите кнопку "Добавить" и нажмите кнопку "Закрыть".
- Дважды щелкните обязательные поля в представлении таблицы главной таблицы, чтобы выбрать поля.
- Выберите необходимый порядок сортировки .
- В меню "Запрос " щелкните "Создать запрос к таблице", введите имя новой таблицы в текстовом поле " Имя таблицы" и нажмите кнопку "ОК ".
- В меню "Запрос " нажмите кнопку " Выполнить".
- При появлении запроса "You are about to paste # row(s) into a new table" (Вы вставляете строки # в новую таблицу) нажмите кнопку "Да", чтобы вставить строки.
- В меню "Файл " нажмите кнопку " Закрыть", а затем нажмите кнопку " Нет", чтобы закрыть окно запроса на создание таблицы.
- Щелкните " Таблицы" на левой панели, щелкните правой кнопкой мыши новую таблицу и выберите пункт "Конструктор ".
- В конструкторе таблицы добавьте поле "Счетчик" с тем же именем поля, которое вы удалили на шаге 1, добавьте это поле "Счетчик" в новую таблицу и сохраните таблицу.
- Закройте окно конструктора .
- Переименуйте главную таблицу, а затем переименуйте новую таблицу в соответствии с именем главной таблицы.
Access 2007 и более поздних версий
Чтобы сделать это в Microsoft Office Access 2007 или более поздней версии, выполните следующие действия.
- Удалите поле "Счетчик " из главной таблицы и запишите имя поля "Счетчик ".
- Откройте вкладку "Создать ", а затем выберите " Конструктор запросов " в группе "Другие ".
- В диалоговом окне "Показать таблицу" выберите главную таблицу. Нажмите Добавить, а затем — Закрыть.
- Дважды щелкните обязательные поля в представлении таблицы главной таблицы, чтобы выбрать поля.
- Выберите необходимый порядок сортировки .
- На вкладке "Конструктор " нажмите кнопку "Создать таблицу " в группе "Тип запроса ".
- Введите имя новой таблицы в поле "Имя таблицы " и нажмите кнопку " ОК".
- На вкладке "Конструктор " нажмите кнопку " Выполнить" в группе "Результаты ".
- При появлении запроса "You are about to paste # row(s) into a new table" (Вы вставляете строки # в новую таблицу) нажмите кнопку "Да", чтобы вставить строки.
- Закройте запрос.
- Щелкните правой кнопкой мыши новую таблицу и выберите пункт "Конструктор".
- В конструкторе таблицы добавьте поле " Счетчик" с тем же именем поля, которое было удалено на шаге 1. Добавьте это поле "Счетчик " в новую таблицу и сохраните таблицу.
- Закройте окно конструктора.
- Переименуйте главную таблицу, а затем переименуйте новую таблицу в соответствии с именем главной таблицы.
Метод 2. Создание новой таблицы и перемещение данных в нее с помощью запроса на добавление
Структуру существующей таблицы можно скопировать в виде новой таблицы. Затем можно добавить данные в новую таблицу и добавить новое поле "Счетчик".
Access 2003 и более ранних версий
Чтобы сделать это в Microsoft Office Access 2003 и более ранних версиях, выполните следующие действия.
Удалите поле "Счетчик " из главной таблицы.
Запишите имя поля "Счетчик ".
Скопируйте структуру главной таблицы и создайте новую таблицу.
Щелкните "Запросы" на левой панели. Щелкните "Создать запрос" в конструкторе на правой панели.
В диалоговом окне "Показать таблицу" выберите главную таблицу. Нажмите кнопку " Добавить", а затем нажмите кнопку "Закрыть".
Чтобы выбрать поля, дважды щелкните необходимые поля. Выполните это для всех полей, кроме поля "Счетчик " в представлении таблицы главной таблицы.
В меню "Запрос " щелкните "Добавить запрос".
При этом изменяется тип запроса.
В списке "Имя таблицы " выберите новую таблицу, созданную на шаге 2. Нажмите кнопку ОК.
В меню "Запрос " нажмите кнопку " Выполнить".
При появлении запроса "You are about to paste # row(s) into a new table" (Вы вставляете строки # в новую таблицу) нажмите кнопку "Да", чтобы вставить строки.
В меню "Файл " нажмите кнопку " Закрыть". Нажмите кнопку " Нет", чтобы закрыть окно AppendQuery .
Щелкните "Таблицы" на левой панели. Щелкните правой кнопкой мыши новую таблицу и выберите пункт "Конструктор".
В конструкторе таблицы добавьте поле "Счетчик " с тем же именем поля, которое вы удалили на шаге 1. Добавьте это поле "Счетчик " в новую таблицу и сохраните таблицу.
Закройте окно конструктора .
Переименуйте главную таблицу, а затем переименуйте новую таблицу в соответствии с именем главной таблицы.
Access 2007 и более поздних версий
Чтобы сделать это в Microsoft Office Access 2007 или более поздней версии, выполните следующие действия.
Удалите поле "Счетчик " из главной таблицы.
Запишите имя поля "Счетчик ".
Скопируйте структуру главной таблицы, а затем создайте новую таблицу.
Откройте вкладку "Создать ", а затем выберите " Конструктор запросов " в группе "Другие ".
В диалоговом окне "Показать таблицу" выберите главную таблицу. Нажмите Добавить, а затем — Закрыть.
Чтобы выбрать поля, дважды щелкните необходимые поля. Выполните это для всех полей, кроме поля "Счетчик " в представлении таблицы главной таблицы.
На вкладке " Конструктор" щелкните "Добавить " в группе "Тип запроса ".
При этом изменяется тип запроса.
Я в списке "Имя таблицы", выделите новую таблицу, созданную на шаге 2, и нажмите кнопку "ОК ".
На вкладке "Конструктор " нажмите кнопку " Выполнить" в группе "Результаты ".
При появлении запроса "You are about to paste # row(s) into a new table" (Вы вставляете строки # в новую таблицу) нажмите кнопку "Да", чтобы вставить строки.
Щелкните правой кнопкой мыши новую таблицу и выберите пункт "Конструктор".
В конструкторе таблицы добавьте поле " Счетчик" с тем же именем поля, которое было удалено на шаге 1. Добавьте это поле "Счетчик " в новую таблицу и сохраните таблицу.
Закройте окно конструктора.
Переименуйте главную таблицу, а затем переименуйте новую таблицу в соответствии с именем главной таблицы.
Сброс поля "Счетчик" в таблице со ссылками на таблицы
Таблица со ссылками имеет связь с одной или несколькими таблицами. Ниже описано, как сбросить поле "Счетчик " для таблицы с одной таблицей, на которую ссылаются. Если у вас есть несколько ссылочных таблиц, необходимо выполнить следующие действия для каждой таблицы, на которую указывает ссылка.
Удалите связь между таблицами.
Задайте для поля "Счетчик" основной таблицы тип данных "Число", а затем удалите первичный ключ.
Создайте новое поле типа данных AutoNumber в основной таблице, а затем сохраните таблицу.
Создайте новое поле типа данных Number в указанной таблице, а затем сохраните таблицу.
Чтобы создать запрос на обновление, который обновляет новое поле в таблице, на которую указывает ссылка, на новое поле " Счетчик" главной таблицы, выполните следующие действия.
Access 2003 и более ранних версий
-
Щелкните "Запросы" в левой области и выберите команду "Создать запрос" в конструкторе в области справа.
При этом создается новый запрос.
При этом создается соединение между таблицами, основанное на исходных полях связывания.
Access 2007 и более поздних версий
- Откройте вкладку "Создать ", а затем выберите " Конструктор запросов " в группе "Другие ". При этом создается новый запрос.
- В диалоговом окне "Показать таблицу" выберите главную таблицу и таблицу, на которую указывает ссылка. Нажмите кнопку "Добавить", чтобы добавить главную таблицу и таблицу, на которую указывает ссылка. Нажмите кнопку Закрыть.
- Щелкните поле в главной таблице, которая ранее была связана со связанной таблицей, а затем перетащите поле в ранее связанное поле ссылаемой таблицы.
При этом создается соединение между таблицами, основанное на исходных полях связывания.
При этом изменяется тип запроса.
Удалите исходное поле связывания из основной таблицы и таблицы, на которую указывает ссылка.
Измените имя нового поля "Счетчик " на исходное.
Повторно создайте первичный ключ и связь между таблицами. Эта процедура сбрасывает поле "Счетчик " и обновляет таблицу, на которую указывает ссылка, используя правильные значения ключа.
Как обнулить счетчик в access
← →
CFi ( 2007-11-01 23:03 ) [0]
Привет Всем, подскажите как программно обнулить счетчик в Access
← →
CFi ( 2007-11-01 23:10 ) [1]
Счктчик — это поле с типом счетчик, просто в таблицу постоянно добавляются и и из нее удаляются данные и счетчик блин может так достичь очень большого числа
← →
Anatoly Podgoretsky © ( 2007-11-01 23:19 ) [2]
Простой вопрос — сколько записей добавляется в сутки?
← →
DVM © ( 2007-11-01 23:42 ) [3]
> и счетчик блин может так достичь очень большого числа
ну и что? ты лучще подумай о том, что в таком режиме работы файл базы постепенно вырастет до своего максимального для акцесс размера и потом все, кирдык. Потребуется сжатие.
← →
sniknik © ( 2007-11-01 23:44 ) [4]
забей. если даже такое и случится (достигнет максимума), что маловероятно, то счетчик просто перепрыгнет в минимум (там видать инкремент без учета переполнения). и все пойдет по кругу.
← →
sniknik © ( 2007-11-01 23:46 ) [5]
DVM © (01.11.07 23:42) [3]
не вырастет, т.к.
> . постоянно добавляются и и из нее удаляются
а от удаленных он место повторно использует
← →
CFi ( 2007-11-01 23:48 ) [6]
Блин все это так, но все-таки хочеься цивильно чтобы было, что пря м никак вообще нельзя програмно обнулить?
← →
Anatoly Podgoretsky © ( 2007-11-01 23:51 ) [7]
> CFi (01.11.2007 23:48:06) [6]
Ты замалчиваешь насчет количества новых записей в день.
← →
DVM © ( 2007-11-01 23:51 ) [8]
> sniknik ©
> а от удаленных он место повторно использует
Использует ли? Не уверен.
← →
sniknik © ( 2007-11-01 23:52 ) [9]
почему нельзя? можно, см. хелп по alter table . , только бессмысленно это, хотелось бы смысл "цивильности" понять, а то получается нецивильно программы пишу.
Мое наблюдение, что неиспользует и даже пре редактирование занимает новое место в файле. Этим они обеспечивают особую живучесть, за счет транзакционного принципа работы.
← →
sniknik © ( 2007-11-01 23:53 ) [11]
> Использует ли? Не уверен.
проверь. или поверь.
← →
DVM © ( 2007-11-01 23:54 ) [12]
> Мое наблюдение, что неиспользует
Тогда счетчик максимума не достигнет никогда, если сжатие не выполнять. Быстрее файл достигнет 2 гб.
← →
Anatoly Podgoretsky © ( 2007-11-01 23:56 ) [13]
> DVM (01.11.2007 23:54:12) [12]
Сжатие надо постоянно выполнять, при напряженной работе размер растет стремительно, по наблюдениям за Access 97/2000
← →
CFi ( 2007-11-01 23:57 ) [14]
На счет Alert Table — это хорошая мысль, только каждый раз создавать новую таблицу, тоже гемор, хотя все-таки мысль хорошая
← →
engine © ( 2007-11-02 00:09 ) [15]
> CFi (01.11.07 23:57) [14]
мысль хорошая — но не цивильная ))
← →
sniknik © ( 2007-11-02 00:23 ) [16]
> Тогда счетчик максимума не достигнет никогда, если сжатие не выполнять. Быстрее файл достигнет 2 гб.
достигнет. попробуй всетаки поверить, место используется. не линейно типа если есть то обязательно надо занять (с минимизацией места), а тогда когда движку это покажется выгодней (с максимизацией скорости).
> по наблюдениям за Access 97/2000
97-й давно пора из наблюдений исключить, особенно после того как мелкософт признал, что в нем серьезные недостатки и рекомендовал если уж и использовать то с 2000го минимум.
> мысль хорошая — но не цивильная ))
точно не цивильная.
хотя и единственная которая позволяет модифицировать таблицу, а не создавать новую.
> только каждый раз создавать новую таблицу
?? где уж ты там в хелпе создание по ней нашел. скорее всего туда и не заглядывал, а так ляпнул что с бодуна взбрело.
← →
Anatoly Podgoretsky © ( 2007-11-02 00:24 ) [17]
> sniknik (02.11.2007 00:23:16) [16]
А где я найду 2003 для наблюдения.
← →
Anatoly Podgoretsky © ( 2007-11-02 00:26 ) [18]
> sniknik (02.11.2007 00:23:16) [16]
А насчет количество добавлений так и молчит, но может он вечно собирается жить.
И умалчивается структура связей таблиц, думаю там вообще одна плоская таблица.
← →
sniknik © ( 2007-11-02 00:26 ) [19]
> А где я найду 2003 для наблюдения.
2000-го достаточно.
← →
Anatoly Podgoretsky © ( 2007-11-02 00:28 ) [20]
> sniknik (02.11.2007 00:26:19) [19]
Вопрос стоит иначе, где я Акцесс вообще возьму, я последний раз видел его в 2000 году.
← →
sniknik © ( 2007-11-02 00:46 ) [21]
а зачем вообще access? (я уж забыл когда его открывал ) винда есть? щелкнуть правой клавищей мыши на рабочем столе, в "создать" выбрать "Приложение Microsoft Office Access" (должно быть, если нет то сделать через интерфейс настройки DSN ODBC) на крайний случай можно через Jro или Dao сделать базу.
дальше через ADO выполнять запросы (дельфи то есть?).
кстати проверил 97й он в этом плане тоже нормально работает, использует место повторно.
← →
DVM © ( 2007-11-02 10:54 ) [22]
> sniknik ©
Я тоже проверил. Правда я совсем примитивный пример накатал — чисто добавление удаление, но вроде файл не растет.
← →
sniknik © ( 2007-11-02 11:19 ) [23]
> Правда я совсем примитивный пример накатал
я совсем не "катал", просто в уже готовой программке для тестов запросов записал чтото большое (копию таблицы), предварительно до теста упаковав базу конечно (точка отсчета), потом удалил это, вышел посмотрел размер, после повторил "запись того же большого", вышел, размер тот же (примерно, разница в несколько килобайт, при общем приросте от первого на
200 мег (такая таблица была максимальная)). что было бы невозможно если бы не использовалось место из под удаленного.
← →
Anatoly Podgoretsky © ( 2007-11-02 13:02 ) [24]
> sniknik (02.11.2007 11:19:23) [23]
Для чистоты эксперимента стоит еще проверить обновление, самое простое fld=fld
Ну и могут быть различия, выполнять в Акцесс или во внешнем приложение, кроме того Микрософт наверно тоже на месте не стоял, с 97 до 2007 прошло много времени. В 97 размер катастрофически увеличивался и при том не при добавление/удаление.
← →
sniknik © ( 2007-11-02 13:55 ) [25]
> Для чистоты эксперимента стоит еще проверить обновление, самое простое fld=fld
нафиг еще проверки. работать тоже надо. (я для себя уже на проверялся достаточно, а убеждать когото цели нет, кто хочет/нужно сам проверит. или пусть просто верит)
вообще, у нас клиенты кое кто по два года упаковок не делали, просто не знали как/зачем (в проге есть кнопка "упаковать", но им ее не показали. ) и ничего страшного не случалось, переполнений базы не возникало хотя если посчитать все проходные/временные данные побывавшие в базе то там не то что 2 там 200 гигов превысит. показатель однако.
> выполнять в Акцесс или во внешнем приложение
все что я говорил это относится к внешним приложениям (Jet), про то что будет в самом access-е ничего сказать не могу (предполагаю что тоже самое, но без гарантий), я с ним не работаю практически.
> и при том не при добавление/удаление.
в 2000 и 2003 тоже может быть не при добавлении, а на "простом" селекте с джойнами, чтото ему изза объединений нужно, какие дополнительные рабочие пространства. но они тоже после будут использованы если выделились
← →
Anatoly Podgoretsky © ( 2007-11-02 14:09 ) [26]
> sniknik (02.11.2007 13:55:25) [25]
Как обнулить счетчик в access
Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль
| Поиск по форуму |
| Расширенный поиск |
| К странице. |

| Serge_Bliznykov |
| Посмотреть профиль |
| Найти ещё сообщения от Serge_Bliznykov |
поле Счетчик продолжит нумерацию в 11 (конечно если заданный номер не существует).
а после удаления всех записей, выполненная команда:
Call startNum(1)
заставит счетчик начинать счет с 1.
Но на эти возможности работы с полем Счетчик, лучше не возлагать надежды при создании проекта, т.к. огорчений от проблем может быть гораздо больше, чем радости от подобной работы со Счетчиком.
| Teslenko_EA |
| Посмотреть профиль |
| Найти ещё сообщения от Teslenko_EA |
уберите данный пост, пожалуйста.
уже всё понял сам!
p.s. и очень жаль, что нельзя самостоятельно убивать свои же пустые посты!
| Serge_Bliznykov |
| Посмотреть профиль |
| Найти ещё сообщения от Serge_Bliznykov |
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке — https://slurm.club/3MeqNEk