Як встановити перше значення AutoNumber у Access?


9

Мені не потрібно скидати значення AutoNumber, як це запитання , а я хотів би спершу встановити число на:

1001

Який приріст, як звичайний:

1001

1002

1003

...

Як мені це зробити в Access 2010?


5
Не відповідь, а попередження: Autonumber не призначений для управління таким чином. Я бачив незліченну кількість людей, які пробують це. Це ніколи не працює, тому що БД буде робити дивні речі, які збільшуються іноді (наприклад, помилка записує все-таки збільшення числа, наприклад). Autonumber не гарантує, що номери записів будуть послідовними. Адже в рідкісних випадках це навіть не гарантує, що номер буде унікальним. Це дуже корисно для створення первинного ключа для невеликої таблиці. Мало ризиковано для великих столів. Це абсолютно жахливо використовувати як фактичне поле даних. Він
шматочки Бекона

@BaconBits ... для чого тоді призначений AutoNumber?
Джеймс Мерц

Зауваження до коментаря @ BaconBits: nce ви бачите подібні статті, коли щось переходить у грушоподібну форму, тому що люди очікують, що Autonumber стане чимось не так. Якщо вам потрібно генерувати номери таким чином, запишіть запити та інше в БД, щоб зробити це правильно самостійно.
Переповнення стека мертве

Відповіді:


16

Хоча Access не пропонує цю функцію спочатку, її можна досягти за допомогою запиту, наприклад:

CREATE TABLE TableThatIncrements
(
Id AUTOINCREMENT(1001,1)
)

Це створить єдину таблицю, яка називається "TableThatIncrements" з одним стовпцем, який називається "Id". Тепер ви можете використовувати редактор таблиць для додавання властивостей та / або інших стовпців.

Зміна

AUTOINCREMENT(x,y)

відповідно до ваших потреб, де xє початковим числом приросту і yчислом, на яке потрібно збільшити. Так AUTOINCREMENT(100,5)вийде: 100, 105, 110, 115 тощо.

Якщо ви хочете змінити існуючу таблицю, використовуйте наступний запит. Переконайтесь, що вкладка конкретної таблиці закрита, щоб Access міг її заблокувати та змінити.

ALTER TABLE TableThatIncrements
   ALTER COLUMN Id AUTOINCREMENT(1001,1)

Ви можете запустити запит у Access, виконавши такі дії:

  1. Перейдіть на вкладку "Створити" та натисніть "Дизайн запитів"
    введіть тут опис зображення

  2. Просто закрийте вікно, яке з’явиться, яке просить вибрати таблиці, нам це не потрібно.

  3. Перейдіть на вкладку «Дизайн» і натискайте кнопку зі стрілкою, поки не з’явиться екран текстового введення. (За замовчуванням сказано SELECT;).
    введіть тут опис зображення

  4. Видаліть текст за замовчуванням і вставте вищезазначений запит.

  5. Натисніть "Виконати".
    введіть тут опис зображення


хороша відповідь, але це створює нову таблицю ... чи я помиляюся? Чи можна це зробити у вже створеній таблиці?
Джеймс Мерц

@KronoS Оновлено мою відповідь
Переповнення стека мертве

2

1- Створити таблицю1 2- Перейти до створення -------> дизайнерського запиту. 3- Закрийте таблицю 4- Перейдіть до SQl зверху. 5- Минулий цей код.

ALTER TABLE [TABLE1] ALTER COLUMN [Id] COUNTER (8982,1)


Схоже, прийнята відповідь, за винятком використання іншого ключового слова (а інше набагато краще відформатованого). Чи справді ваша відповідь відрізняється? Чи можете ви пояснити, як? Ваша відповідь краща? Чому? Будь ласка, не відповідайте на коментарі; відредагуйте свою відповідь, щоб зробити її більш зрозумілою та повною.
Скотт

@Scott Насправді вони трохи відрізняються: ALTER COLUMN Id AUTOINCREMENT (1001,1) та ALTER COLUMN [Id] COUNTER (8982,1) див. Слово AUTOINCREMENT та COUNTER, але вони обидва працюють, як і очікувалося
willy winka

1
@willyw: Правильно; Я сказав "те саме ... за винятком використання іншого ключового слова ".
Скотт

@Scott ops так, ти маєш рацію ... Я занадто швидко читав вибачення ;-)
willy wonka

1

На цьому веб-сайті є дуже простий спосіб запустити свій автономний номер будь-якою цифрою: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Ви створюєте запит з виразом, який повідомляє змінити поле авточислення

"Спочатку запустіть цей запит:

ВСТАВИТИ В tblName (ID) SELECT 999 AS Expr1

Де tblName - назва таблиці, а ID - назва поля AutoNumber.

Потім запустіть другий запит, щоб видалити рядок, який ви вставили:

ВИДАЛИТИ З tblName WHERE ID = 999;

(Крім того, ви можете просто відкрити таблицю і вручну видалити рядок, який ви вставили.)

Тепер наступному запису, доданому до таблиці, присвоюється значення 1000.

Цей метод працює з новою таблицею або з таблицею, чий AutoNumber ще не досяг значення Seed. (Звичайно, поле ідентифікаторів для існуючих рядків не буде змінено, але наступні рядки почнуться з 1000.) "


0

Вам доведеться обдурити Access, оскільки він передбачає, що вас не цікавить авторський номер, відмінний від того, який він надає.

Потрібно запустити таблицю зі спеціального автономера, який потребує певних налаштувань. Але як тільки це відбудеться, ви можете просто продовжувати додавати звідти.

Google "почав змінювати автономний номер доступу", і ви знайдете кілька варіантів для цього. Більшість покладаються на створення додатку запиту для зміни поля.

Створіть першу таблицю, яка містить поле типу лічильника, яке ви хочете почати на іншому номері. Не вводьте жодних записів. Створіть другу таблицю з одним довгим цілим полем типу числа, яке має те саме ім’я, що і лічильне поле у ​​першій таблиці. Створіть запис у другій таблиці, ввівши номер один менший від числа, на якому потрібно запустити лічильник у першій таблиці. Створіть запит на додавання, щоб додати один запис у другій таблиці до першої таблиці та запустіть. Видаліть другу таблицю, видаліть запис, який ви додали до першої таблиці, і почніть вводити дані.

З MVPS.org: http://access.mvps.org/access/tables/tbl0005.htm

Якщо ви не хочете створювати запит на додавання, ви завжди можете налаштувати таблицю і скопіювати та вставити 1000 рядків фіктивних даних з excel, видалити записи, поки не дістанете номер 1001, і продовжуйте звідти.

ОНОВЛЕННЯ: Додавання пояснення з причини

Причиною встановлення авточислового номеру, що починається лише з 1, є те, що поле для авточислення призначене для використання у якості внутрішнього довідкового поля, а в належній практиці баз даних, як правило, не має використовуватися в будь-якій загальнодоступній формі. Він використовується в тих випадках, коли в даній таблиці вже немає унікального елемента для створення унікального запису, за допомогою якого можна шукати та індексувати таблицю.


Має бути простіший спосіб зробити це ....
Джеймс Мерц

Я гадаю, що хороша новина полягає в тому, що якщо вам потрібно створити кілька таблиць з таким автонабіркою, ви можете просто створити одну, зберегти її у файлі бази даних «шаблон» та просто скопіювати її у нові файли бази даних, як вам потрібно.
music2myear

0

Це досить стара тема, але все-таки з’являється у трійці найкращих результатів пошуку Google.

Однією з причин, за якою користувач може захотіти змінити значення поля для авточислення, є виправлення помилки, викликаної редагуванням бази даних. Коли адміністратор може захотіти внести деякі основні зміни на передній кінець бази даних, адміністратор може зробити копії всіх пов’язаних таблиць та перенаправити копію розробки переднього кінця на ці задні кінці. Якщо змін достатньо, він може просто замінити виробничу копію переднього кінця своєю копією, перенаправляючи всі пов'язані таблиці після тестування.

Немає проблем, правда? Добре, збільшення кількості автономера залишається з переднього кінця. Отже, якщо виробнича сторона лише збільшила авточисло на 50 або 500 або 5000 чисел, поки адміністратор працював над копією, то нова копія виробництва буде повторно повторювати ті самі номери і не зможе вводити елементи в ці поля, один за той час, поки воно не потрапить "у чистоту". Скопіюйте 50, 500 або 5000 рядків даних Excel і спробуйте вставити їх. Він буде помилкою в кожному рядку (не забудьте придушити подальше повідомлення, коли воно з’явиться), але кількість автономера зросте на цю суму, і ви добрі йти знову. Якщо ви використовуєте автономери таким чином, радимо збільшити номери до того, на якому є виробничий db, перш ніж перезаписати його з вашою копією розробки.

Це також спосіб запустити свій авточисловий номер на щось вище, ніж 1. Як і в старі часи встановлення лічильника відвідувань сторінки на 17 479 на вашій головній сторінці Geocities, коли насправді його відвідували лише 16 разів. Вами.


0

Простий спосіб досягти чогось подібного - це поле Autonumber (наприклад, "ID") та друге обчислене поле (наприклад, "ItemID") та ввести формулу "1000+ [ID]" для обчисленого поля. Це нове поле тепер автоматично відстежує поле Autonumber, але починається з 1001 замість 1.


0

Я вважаю, що це може бути досягнуто вашої спеціальної області приросту, спочатку створивши приховану таблицю, яка дозволить зберегти початковий проміжок автоматичних приростів, починаючи від нуля до вашого вибору, наприклад. ця таблиця буде зберігати 0 до 1050, тоді ви починаєте з кроком 1055, 1060, 1065 тощо. Потім ви заховатимете цю частину даних із таблиці. Сподіваюсь, це допомагає. Здається, що Access був розроблений так, щоб спочатку виглядати з нуля, оскільки виникнуть конфлікти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.