Elettracompany.com

Компьютерный справочник
4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Access как обнулить счетчик в таблице

Как «заставить» счетчик начинать нумеровать с произвольного номера и с произвольным инкрементом

Иногда необходимо изменить начальный номер счетчика с которого начинается автоматический отсчет. Просто так в Access это сделать не удастся.

Для того, чтобы добиться этой цели, необходимо добавить в таблицу запись с нужным значением счетчика.

Редактировать поле «счетчик» можно разными путями — либо запросом на добавление, либо из кода VBA с помощью объекта Recordset.

Пример с использованием временной таблицы и запроса:

Допустим, у Вас есть таблица Table1, которая содержит поле счетчика ID, которое вы желаете стартовать с другого номера. Не вводите пока никаких записей в таблицу. Создайте, другую временную таблицу с одним полем типа Длинное целое, которое имеете тоже имя (в нашем случае ID), что и поле счетчика в первой таблице. Создайте запись во временной таблице, введя номер на единицу меньше того, с какого вы желаете стартовать счетчик в таблице Table1. Создайте запрос на добавление, чтобы добавить одну запись из второй таблицы в первую таблицу, и запустите его. Удалите вторую временную таблицу, удалите запись, которая появилась в таблице Table1 и начинайте вводить данные.

Пример с использованием запроса:

‘Есть таблица «Table1» с полем «ID» типа «счетчик»

PARAMETERS [Number] Long;

INSERT INTO Table1( [ID] )

Select [Number] As Expr1;

Создаете новый запрос, добавляете таблицу, выбираете режим SQL, вставляете эти строки и сохраняете запрос.

После выполнения запроса введите желаемое число и поле счетчик в таблице будет нумеровать именно с этого номера.

Пример с использованием VBA:

‘Есть таблица «Table1» с полем «ID» типа «счетчик»

Public Function AddNumer(lNum As Long) As Long

On Error GoTo Err_

Dim rs As Recordset

Set rs = CurrentDb.OpenRecordset(«Table1»)

Учтите только, что если Вы введете число меньше, чем значение счетчика в данный момент, запись добавится, но нумерация все равно будет идти по принципу: максимальное число + 1. Например, у Вас значение счетчика было 333, Вы добавляете запись со значением 222 — запись, конечно, добавится, но все равно счетчик будет продолжать нумеровать 334, 335, 336. т.е. максимальное значение в данном поле + 1.

После удаления всех записей из таблицы, поле счетчик не сбрасывается на единицу, а продолжает последовательно нумеровать и дальше. Поэтому необходимо после очистки таблицы сжать (compact) базу данных. Если из таблицы удалить не все записи, то после сжатия значение поля autonumber при добавлении будет равно максимальному — тому, что уже есть в таблице +1 (Если, конечно, свойство поля счетчик «New Values» установлено в «Increment»). Другой путь сбросить на единицу — удалить поле счетчика и создать его снова в таблице.

Можно использовать мощные инструкции SQL:

‘Есть таблица «Table1» с полем «ID» типа «счетчик»

ALTER TABLE Table1 ALTER COLUMN ID Counter(1,1)

Создаете новый запрос, добавляете таблицу, выбираете режим SQL, вставляете эти строки и сохраняете запрос.

Можно сказать, что это малодокументированная команда 😉 с широкими возможностями управления полем типа счетчик.

Команда позволяет задавать для таблицы начальный отсчет (1,1) и инкремент (1,1). Можно задавать, например, начальный отсчет с 1000 с инкрементом в 10 . Counter(1000,10), причем никаких ограничений не накладывается — можно задавать значение меньшее, чем максимально присутствующее в этом поле, в отличие от примера с использованием запроса. Никаких процедур по сжатию базы для сброса счетчика не требуется. Понятно, что если будет пересечение, т.е. добавляемое значение счетчика уже присутствует в таблице, то механизм индексирования не даст ввести дублирующее значение и вывесит предупреждающее сообщение. Также нельзя таким способом изменить значение счетчика, если поле счетчика (в данному случае ID) участвует в одной или нескольких связях. С другой стороны, что стоит удалить связь, выполнить запрос на изменение счетчика и заново создать связь.

Как сбросить значения поля счетчика в базе Access (3 ПРОСТЫХ способа)

Для просмотра онлайн кликните на видео ⤵

Как сделать нумерацию строк в отчете Access Подробнее

Читать еще:  Как создать базу данных в access

Microsoft Access № 56: изменение поля счётчика Access Подробнее

КАК и ЗАЧЕМ использовать мастер подстановок в Microsoft Access Подробнее

Как связать таблицы в базе данных Microsoft Access 2016 Подробнее

Сортировка и группировка данных с итогами в отчетах Access Подробнее

Как создать макросы в Microsoft Access за 7 минут Подробнее

Первое знакомство с базами данных Microsoft Access Подробнее

Как создать главную кнопочную форму в Microsoft Access за 9 минут Подробнее

Как ЛЕГКО и БЫСТРО создать схему данных в Microsoft Access? Подробнее

Как создать запросы в Microsoft Access за 10 минут Подробнее

Автоматическое заполнение полей в базе Access Подробнее

Основные свойства полей таблицы Microsoft Access Подробнее

Microsoft Access № 14: сортировка и фильтрация при загрузке таблицы (формы) Access Подробнее

Как создать формы в Microsoft Access за 10 минут Подробнее

Как сделать формы в базе данных Microsoft Access 2016 (1 часть) Подробнее

Access. Таблицы. 2. Первичный ключ. Подстановки. Подробнее

Флажки и группа переключателей в базе данных Access Подробнее

Microsoft Access № 34: cумма в смешанном поле Access (числа и текст) Подробнее

Как создать таблицы в Microsoft Access за 8 минут Подробнее

Привет

Русскоязычный информационно-болтологический форум

как «обнулить» базу в Access’e?

как «обнулить» базу в Access’e?

Post by dima_ca » Wed Feb 09, 2005 7:16 am

Народ, я тут на досуге всё воюю с одним вебсаитом — перевожу его с XML на Access. В процессе отладки несколько раз обнулял базу «вручную», а потом просто добавил «delete table. » в скрипт, каздый раз перед запуском скрипт стирает все таблицы. И тут вдруг я заметил, что размер файла, пустой базы, 12M ! Другое неудобство — то чо Autonumbers продолжают расти с каждым прогоном.

Вопрос: как можно сделать экспорт структуры базы не экспортируя данных в Access’e (или может быть надо вообще как-то по другому это сделать?)

Re: как «обнулить» базу в Access’e?

Post by cityzen » Wed Feb 09, 2005 8:23 am

MSACCESS.EXE yourbase.mdb /compact

Post by Sergey___K » Wed Feb 09, 2005 8:28 am

Ничего не понял, кроме того, что нужно сделать Repair Compact database, чтобы autoincrenet’ить занова если таблица пустая.

А вообще, если только структуры таблиц:
File->Get External Data -> Import -> (select database, click «Import») -> Options >> -> «Import Tables» group -> Definitions Only

Re: как «обнулить» базу в Access’e?

Post by dima_ca » Wed Feb 09, 2005 8:28 am

MSACCESS.EXE yourbase.mdb /compact

Спасибо! Я сейчас попробовать это не могу, только вечером, поэтому ещё вопрос: индексы это тоже обнулит или нет?

Re: как «обнулить» базу в Access’e?

Post by cityzen » Wed Feb 09, 2005 8:36 am

MSACCESS.EXE yourbase.mdb /compact

Спасибо! Я сейчас попробовать это не могу, только вечером, поэтому ещё вопрос: индексы это тоже обнулит или нет?

Post by dima_ca » Wed Feb 09, 2005 9:00 am

Sergey___K wrote: Ничего не понял, кроме того, что нужно сделать Repair Compact database, чтобы autoincrenet’ить занова если таблица пустая.

А вообще, если только структуры таблиц:
File->Get External Data -> Import -> (select database, click «Import») -> Options >> -> «Import Tables» group -> Definitions Only

Post by Sergey___K » Wed Feb 09, 2005 10:54 am

Post by dima_ca » Wed Feb 09, 2005 4:59 pm

Post by Dimka69 » Wed Feb 09, 2005 5:44 pm

Sergey___K — а Вы IT? — просто интересно. Все IT-шники, которых я встречал люто ненавидят Ассess, в отличие от business people, которые находят его достаточно удобным и полезным и тихо с его помощью делают многие вещи.

Интересно, что в моей предыдущей компании главный IT (CIO) так люто ненавидел Access, что просто не давал нам работать и в буквальном смысле каждый день харассил нас тем, что IT Access просто уберет. Я там уже год не работаю, но по слухам с той стороны гор, IT до сих разрабатывает application, которое придет на смену Access в том процессе. Кажется даже до Беты еще не дошли.

Читать еще:  Скачать базу данных access магазин

В нынешней компании IT тоже не любит Access, разве что не грозятся убить процессы на корню, а «предлагают замену» (уж как полгода). Однако есть одна операция в процессе, которую мы можем сделать только в Ассеss что наше IT и предложило нам.

По этому от имени бизнес-people скажу, Во-первых, для меня Access удобен, в том числе и тем, что он работает как Client у SQL Server, и тем, что он входит в стандартный Office Professional. А во-вторых, to IT: «Ребята, я не возражаю, только дайте мне то, что мне нужно быстро и без объяснений плохой-хороший.» А то начинаются разговоры «правильно — не правильно». Мне работу делать нужно, а не философию разводить.

Мое предсказание, что Access here to stay и у каждого продукта своя цель и ниша.

Sorry for off-topiс above. По теме уже ответили.

Post by BezKovshaPrishel » Wed Feb 09, 2005 6:44 pm

Sergey___K — а Вы IT? — просто интересно. Все IT-шники, которых я встречал люто ненавидят Ассess, в отличие от business people, которые находят его достаточно удобным и полезным и тихо с его помощью делают многие вещи.

Интересно, что в моей предыдущей компании главный IT (CIO) так люто ненавидел Access, что просто не давал нам работать и в буквальном смысле каждый день харассил нас тем, что IT Access просто уберет. Я там уже год не работаю, но по слухам с той стороны гор, IT до сих разрабатывает application, которое придет на смену Access в том процессе. Кажется даже до Беты еще не дошли.

В нынешней компании IT тоже не любит Access, разве что не грозятся убить процессы на корню, а «предлагают замену» (уж как полгода). Однако есть одна операция в процессе, которую мы можем сделать только в Ассеss что наше IT и предложило нам.

По этому от имени бизнес-people скажу, Во-первых, для меня Access удобен, в том числе и тем, что он работает как Client у SQL Server, и тем, что он входит в стандартный Office Professional. А во-вторых, to IT: «Ребята, я не возражаю, только дайте мне то, что мне нужно быстро и без объяснений плохой-хороший.» А то начинаются разговоры «правильно — не правильно». Мне работу делать нужно, а не философию разводить.

Мое предсказание, что Access here to stay и у каждого продукта своя цель и ниша.

Sorry for off-topiс above. По теме уже ответили.

Как сбросить значения поля счетчика в базе Access (3 ПРОСТЫХ способа)

KOMMENTARE • 12

Спасибо за помощь.

Спасибо! Третьего способа не знал. Очень помогло.

В Access 2007 третий вариант (с восстановлением БД) не работает. 🙁 Может из-за того, что таблица, где необходимо такое действие, имеет связи с другими таблицами?

А как сделать, чтобы счётчик начинал счёт записей таблицы не с 1, а с какого-то конкретного значения?!
Т.е. я хочу, чтобы в одной таблице в ключевом поле счётчик присваивал id 1000001, 1000002, 1000003. а в другой — 2000001, 2000002, 2000003.
Возможно ли это вообще?

@Уроки по Microsoft Access, уже попробовал, всё работает. Спасибо!)

Да запросом sql

@Уроки по Microsoft Access, не совсем понимаю как. Запрос SQL?

С помощью insert вставьте в таблицу первую запись, где будет 10001, далее при заполнении номера пойлут по порядку

А когда может потребоваться сброс первичного ключа?

Если запись не удачно удалили, и вам принципиальна правильная последовательность

можно ли на одном ноуте поставить и Microsoft Access 2003, и Microsoft Access 2016 так, чтобы они работали корректно.

Читать еще:  Smartart для powerpoint шаблоны

Спасибо, ты ЛУЧШИЙ!

+Пётр Иванов спасибо, что смотрите

А что случается со связями, запросами и отчетами при первых 2х способах?? Я думаю это нужно было упомянуть в видео..

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

ничего. если есть связи, то поле вы не удалите. сначала надо будет убрать связь, пересоздать поле и потом вернуть связь.

Добрый день! Сделайте ролик, который показывает, как добавить на кнопку действие копировать в буфер обмена часть записи в ячейке.

Добавление и изменение первичного ключа таблицы в Access

Первичный ключ — это поле или набор полей со значениями, уникальными во всей таблице. Значения первичного ключа можно использовать для ссылки на любую запись, поскольку у каждой записи свое значение. В таблице может быть только один первичный ключ. Access может автоматически создавать поле первичного ключа при создании таблицы. Вы также можете самостоятельно указать поля, которые нужно использовать в качестве первичного ключа. В этой статье объясняется, как и зачем использовать первичные ключи.

Чтобы задать первичный ключ таблицы, откройте таблицу в режиме конструктора. Выберите нужное поле (или поля), а затем на ленте щелкните Ключевое поле.

Примечание: Эта статья относится только к классическим базам данных Access. В веб-приложениях Access и веб-базах данных первичный ключ для новых таблиц назначается автоматически. Несмотря на то что автоматические первичные ключи можно менять, делать это не рекомендуется.

В этой статье

Общие сведения о первичных ключах в Access

С помощью полей первичных ключей Access быстро связывает данные из нескольких таблиц и объединяет эти данные по заданному принципу. Поля первичного ключа можно использовать в других таблицах для ссылки на таблицу, являющуюся источником первичного ключа. В этих таблицах такие поля называются внешними ключами. Например, поле «ИД клиента» из таблицы «Клиенты» может также использоваться в таблице «Заказы». В таблице «Клиенты» оно будет первичным ключом, а в таблице «Заказы» — внешним. Проще говоря, внешний ключ — это первичный ключ другой таблицы. Дополнительные сведения см. в статье Основные сведения о создании баз данных.

1. Первичный ключ

При переносе существующих данных в базу данных в них уже может существовать поле, которое можно использовать как первичный ключ. Часто в роли первичного ключа таблицы выступает уникальный идентификационный номер, например порядковый или инвентарный номер или код. Например, в таблице «Клиенты» для каждого клиента может быть указан уникальный код клиента. Поле кода клиента является первичным ключом.

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

При создании таблицы в режиме таблицы Access автоматически создает первичный ключ с именем «Код» и типом данных «Счетчик».

Создание приемлемого первичного ключа

Чтобы правильно выбрать первичный ключ, следует учитывать несколько характеристик.

Ключ должен однозначно определять каждую строку.

В нем не должно быть пустых или отсутствующих значений — он всегда содержит значение.

Ключ крайне редко изменяется (в идеале — никогда).

Если не удается определить приемлемый ключ, создайте для него поле с типом данных «Счетчик». Поле «Счетчик» заполняется автоматически созданными значениями при первом сохранении каждой записи. Таким образом, поле «Счетчик» соответствует всем трем характеристикам приемлемого первичного ключа. Дополнительные сведения о добавлении поля «Счетчик» см. в статье Добавление поля счетчика в качестве первичного ключа.

Поле с типом данных «Счетчик» является хорошим первичным ключом.

Примеры неудачных первичных ключей

Любое поле, не имеющее одной или нескольких характеристик подходящего первичного ключа, не следует выбирать в качестве первичного ключа. Ниже представлено несколько примеров полей, которые не годятся на роль первичного ключа в таблице «Контакты», и пояснения, почему их не следует использовать.

Ссылка на основную публикацию
Adblock
detector