Jak ustawić pierwszą wartość AutoNumber w Access?

9

Nie muszę resetować wartości AutoNumber jak to pytanie , ale wolę najpierw ustawić liczbę na:

1001

Które następnie przyrosty jak normalne:

1001

1002

1003

...

Jak mogę to zrobić w programie Access 2010?

James Mertz
źródło
5
Nie odpowiedź, ale ostrzeżenie: Autonumeracja nie jest zaprojektowana do zarządzania w ten sposób. Widziałem niezliczoną liczbę osób próbujących tego. To nigdy nie działa, ponieważ DB czasami robi dziwne rzeczy, zwiększając czasami (na przykład nieudane zapisy wciąż zwiększają liczbę). Autonumeracja nie gwarantuje, że numery rekordów będą następujące po sobie. Rzeczywiście, w rzadkich przypadkach nawet nie gwarantuje to, że liczba będzie unikalna. Jest to bardzo przydatne do tworzenia klucza podstawowego do małego stolika. Jest to trochę ryzykowne w przypadku dużych stołów. Jest to absolutnie okropne, gdy używa się go jako rzeczywistego pola danych. On
Bacon Bits
@BaconBits ... do czego zatem należy używać AutoNumber?
James Mertz
Reszta komentarza @ BaconBits: jeśli zobaczysz takie artykuły, gdy coś stanie się gruszkowate, ponieważ ludzie oczekują, że Autonumeracja będzie czymś innym, to nie jest. Jeśli musisz wygenerować liczby w ten sposób, napisz zapytania itp. W DB, aby zrobić to poprawnie samodzielnie.
Przepełnienie stosu nie działa

Odpowiedzi:

16

Mimo że program Access nie oferuje tej funkcji natywnie, można ją uzyskać za pomocą zapytania, takiego jak:

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

Spowoduje to utworzenie pojedynczej tabeli o nazwie „TableThatIncrements” z pojedynczą kolumną o nazwie „Id”. Możesz teraz użyć edytora tabel, aby dodać właściwości i / lub inne kolumny.

Zmiana

AUTOINCREMENT(x,y)

w zależności od potrzeb, gdzie xjest początkowy numer przyrostowy i yjest to numer, który należy zwiększyć. Tak więc AUTOINCREMENT(100,5)przyniesie: 100, 105, 110, 115 itd.

Jeśli chcesz zmienić istniejącą tabelę, użyj następującego zapytania. Upewnij się, że karta konkretnego stołu jest zamknięta, aby program Access mógł ją zablokować i zmienić.

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

Możesz uruchomić zapytanie w programie Access, wykonując następujące czynności:

  1. Przejdź do zakładki „Utwórz” i kliknij „Projekt zapytania”
    wprowadź opis zdjęcia tutaj

  2. Wystarczy zamknąć okno, które wyświetli się z prośbą o wybranie tabel, nie potrzebujemy tego.

  3. Przejdź do zakładki „Projekt” i kliknij przycisk ze strzałką, aż pojawi się ekran wprowadzania tekstu. (Domyślnie mówi SELECT;).
    wprowadź opis zdjęcia tutaj

  4. Usuń domyślny tekst i wklej powyższe zapytanie.

  5. Kliknij „Uruchom”.
    wprowadź opis zdjęcia tutaj

Przepełnienie stosu nie działa
źródło
dobra odpowiedź, ale to tworzy nowy stół ... czy się mylę? Czy można to zrobić w już utworzonej tabeli?
James Mertz
@KronoS Zaktualizowałem moją odpowiedź
Przepełnienie stosu nie działa
2

1- Utwórz tabelę 1 2- Przejdź do tworzenia -------> zapytanie projektowe. 3- Zamknij stolik 4- Idź do SQl z góry. 5- Przeszły ten kod.

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

Mahomet
źródło
Wygląda na to, że jest taka sama jak zaakceptowana odpowiedź, z wyjątkiem użycia innego słowa kluczowego (a drugie jest znacznie lepiej sformatowane). Czy twoja odpowiedź jest naprawdę inna? Czy możesz wyjaśnić jak? Czy twoja odpowiedź jest lepsza? Dlaczego? Proszę nie odpowiadać w komentarzach; edytuj swoją odpowiedź, aby była jaśniejsza i bardziej kompletna.
Scott
@Scott Właściwie są one trochę inne: ALTER COLUMN Id AUTOINCREMENT (1001,1) i ALTER COLUMN [Id] COUNTER (8982,1) widzą słowo AUTOINCREMENT i COUNTER, ale oba działają zgodnie z oczekiwaniami
willy wonka
1
@willyw: Right; Powiedziałem „to samo… z wyjątkiem użycia innego słowa kluczowego ”.
Scott
@Scott ops tak masz rację ... Czytałem zbyt szybko przepraszam ;-)
willy wonka
1

Ta strona ma bardzo prosty sposób na rozpoczęcie automatycznego numerowania z dowolnym numerem: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Tworzysz zapytanie z wyrażeniem, które mówi o zmianie pola autonumeracji

„Najpierw uruchom następujące zapytanie:

INSERT INTO tblName (ID) SELECT 999 AS Expr1

Gdzie tblName to nazwa tabeli, a ID to nazwa pola AutoNumber.

Następnie uruchom drugie zapytanie, aby usunąć wstawiony wiersz:

USUŃ Z tblName GDZIE ID = 999;

(Możesz też po prostu otworzyć tabelę i ręcznie usunąć wstawiony wiersz).

Teraz następny rekord dodany do tabeli ma przypisaną wartość 1000.

Ta metoda działa z nową tabelą lub z tabelą, której numeracja automatyczna nie osiągnęła jeszcze wartości początkowej. (Oczywiście pole identyfikatora dla istniejących wierszy nie zostanie zmienione, ale kolejne wiersze zaczną się od 1000.) ”

Jerzy
źródło
0

Musisz oszukać Access, ponieważ zakłada, że ​​nie interesuje Cię automatyczny numer inny niż ten, który zapewnia.

Musisz zacząć tabelę od niestandardowego autonumerowania, co będzie wymagać pewnej konfiguracji. Ale gdy już będzie, możesz po prostu kontynuować dodawanie.

Google „początek numeracji automatycznej zmiany dostępu”, a znajdziesz kilka opcji, aby to zrobić. Większość polega na utworzeniu zapytania dołączającego w celu zmodyfikowania pola.

Utwórz pierwszą tabelę zawierającą pole typu licznika, które chcesz rozpocząć od innego numeru. Nie wpisuj żadnych rekordów. Utwórz drugą tabelę z pojedynczym długim polem typu liczby całkowitej o takiej samej nazwie jak pole licznika w pierwszej tabeli. Utwórz rekord w drugiej tabeli, wprowadzając liczbę o jeden mniejszą niż liczba, od której chcesz rozpocząć licznik w pierwszej tabeli. Utwórz zapytanie dołączające, aby dołączyć jeden rekord z drugiej tabeli do pierwszej tabeli i uruchom go Usuń drugą tabelę, usuń rekord dołączony do pierwszej tabeli i zacznij wprowadzać dane.

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

Jeśli nie masz ochoty budować dołączanego zapytania, zawsze możesz skonfigurować tabelę i skopiować i wkleić 1000 wierszy danych fikcyjnych z programu Excel, usunąć rekordy, aż dojdziesz do numeru 1001, i przejść dalej.

AKTUALIZACJA: Dodanie wyjaśnienia powodu

Powodem, dla którego autonumeracja jest ustawiona na rozpoczęcie od 1, jest to, że pole autonumerowania ma być używane jako wewnętrzne pole referencyjne, a zgodnie z dobrą praktyką baz danych nie powinno się go stosować w żadnej publicznie widocznej formie. Jest stosowany w przypadkach, gdy w danej tabeli nie ma jeszcze unikalnego elementu, aby utworzyć unikalny wpis, za pomocą którego można przeszukiwać i indeksować tabelę.

music2myear
źródło
Musi być łatwiejszy sposób na zrobienie tego ...
James Mertz
Przypuszczam, że dobrą wiadomością jest to, że jeśli musisz utworzyć kilka tabel z takim numerem automatycznym, możesz po prostu utworzyć taki, zapisać go w pliku bazy danych „szablon” i po prostu skopiować go do nowych plików bazy danych w razie potrzeby.
music2myear
0

To dość stary wątek, ale wciąż pojawia się jako trzy pierwsze wyniki wyszukiwania Google.

Jednym z powodów, dla których użytkownik może chcieć zmienić wartość pola autonumeracji, jest poprawienie błędu spowodowanego edycją bazy danych. Gdy administrator może chcieć wprowadzić kilka poważnych zmian w interfejsie bazy danych, administrator może wykonać kopie wszystkich powiązanych tabel i przekierować kopię programistyczną interfejsu do tych zaplecza. Jeśli zmiany są wystarczające, może po prostu zastąpić kopię produkcyjną interfejsu użytkownika swoją kopią, przekierowując wszystkie połączone tabele po przetestowaniu.

Nie ma problemu, prawda? Cóż, przyrost autonumeracji pozostaje z przodu. Jeśli więc strona produkcyjna po prostu zwiększyła autonumerację o 50 lub 500 lub 5000 liczb, gdy administrator pracował nad kopią, nowa kopia produkcyjna powtórzy te same liczby i nie będzie mogła wprowadzić pozycji w tych polach, jeden na raz, aż stanie się „czysty”. Skopiuj 50, 500 lub 5000 wierszy danych programu Excel i spróbuj je wkleić. Będzie to błąd w każdym wierszu (pamiętaj, aby ukryć kolejne wiadomości, gdy się pojawi), ale numer automatyczny zwiększy się o tę kwotę i jesteś dobry iść ponownie. Jeśli używasz autonumberów w ten sposób, zaleca się zwiększenie liczb do dowolnego poziomu produkcyjnego db przed zastąpieniem go kopią programistyczną.

Jest to również sposób na rozpoczęcie autonumerowania od czegoś wyższego niż 1. Podobnie jak w dawnych czasach ustawiania licznika odwiedzin strony na 17 749 na stronie głównej Geocities, kiedy tak naprawdę odwiedzono go tylko 16 razy. Przez Ciebie.

RunsWithScissors
źródło
0

Prostym sposobem na osiągnięcie czegoś podobnego jest posiadanie pola Autonumerowania (np. „ID”) i drugiego pola Obliczeniowego (np. „IDID”) i wprowadzenie wzoru „1000+ [ID]” dla pola obliczeniowego. To nowe pole będzie teraz automatycznie śledzić pole Autonumerowania, ale zacznie się od 1001 zamiast 1.

Brent
źródło
0

Wierzę, że można to osiągnąć do niestandardowego zakresu przyrostu, tworząc najpierw ukrytą tabelę, która utrzyma początkową lukę automatycznych przyrostów od zera do twojego wyboru, np. ta tabela zachowa od 0 do 1050 Następnie zaczniesz od przyrostów 1055, 1060, 1065 itd. Następnie ukryjesz tę część danych przed tabelą. Mam nadzieję że to pomoże. Wygląda na to, że Access zaprojektowano tak, aby początkowo wyglądał od zera, ponieważ pojawią się konflikty.

ssurjie
źródło