Bagaimana cara menetapkan nilai pertama AutoNumber di Access?

9

Saya tidak perlu mengatur ulang nilai AutoNumber seperti pertanyaan ini , tetapi saya ingin mengatur terlebih dahulu nomornya menjadi:

1001

Yang kemudian bertambah seperti biasa:

1001

1002

1003

...

Bagaimana cara saya melakukan ini di Access 2010?

James Mertz
sumber
5
Bukan jawaban, tetapi peringatan: Autonumber tidak dirancang untuk dikelola dengan cara ini. Saya telah melihat banyak orang mencobanya. Itu tidak pernah berhasil karena DB akan melakukan hal-hal aneh kadang-kadang bertambah (gagal menulis masih menambah nomor, misalnya). Nomor otomatis tidak menjamin bahwa nomor catatan akan berurutan. Memang, dalam kasus yang jarang terjadi itu bahkan tidak akan menjamin angkanya akan unik. Ini sangat berguna untuk membuat kunci utama untuk tabel kecil. Agak berisiko untuk tabel besar. Benar-benar mengerikan untuk digunakan sebagai bidang data aktual. He
Bacon Bits
@BaconBits ... untuk apa AutoNumber digunakan?
James Mertz
Sisa dari komentar @ BaconBits: setelah Anda melihat artikel seperti ini ketika sesuatu berbentuk buah pir karena orang mengharapkan Autonumber menjadi sesuatu yang bukan. Jika Anda perlu menghasilkan angka dengan cara ini, tulislah pertanyaan dan semacamnya di DB untuk melakukannya sendiri dengan benar.
Stack Overflow sudah mati

Jawaban:

16

Meskipun Access tidak menawarkan fungsi ini secara bawaan, Access dapat dicapai melalui kueri, seperti berikut:

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

Ini akan membuat tabel tunggal yang disebut "TableThatIncrements" dengan satu kolom, bernama "Id". Anda sekarang dapat menggunakan editor tabel untuk menambahkan properti dan / atau kolom lainnya.

Perubahan

AUTOINCREMENT(x,y)

sesuai dengan kebutuhan Anda, di mana xnomor pertambahan awal dan ynomor yang akan ditambah. Jadi AUTOINCREMENT(100,5)akan menghasilkan: 100, 105, 110, 115, dll.

Jika Anda ingin mengubah tabel yang ada, gunakan kueri berikut. Pastikan tab tabel tertentu ditutup sehingga Access dapat menguncinya dan mengubahnya.

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

Anda dapat menjalankan kueri di Access dengan melakukan hal berikut:

  1. Buka tab "Buat" dan klik "Desain Kueri"
    masukkan deskripsi gambar di sini

  2. Cukup tutup jendela yang muncul yang meminta Anda memilih tabel, kami tidak membutuhkannya.

  3. Buka tab "Desain" dan klik tombol dengan panah hingga Anda mendapatkan layar input tekstual. (Secara default, katanya SELECT;).
    masukkan deskripsi gambar di sini

  4. Hapus teks default dan tempelkan kueri di atas.

  5. Klik "Jalankan".
    masukkan deskripsi gambar di sini

Stack Overflow sudah mati
sumber
jawaban yang bagus, tetapi itu menciptakan tabel baru ... atau apakah saya salah? Bisakah ini dilakukan dalam tabel yang sudah dibuat?
James Mertz
@ Krono Memperbarui jawaban saya
Stack Overflow sudah mati
2

1- Buat table1 2- Pergi untuk membuat -------> permintaan desain. 3- Tutup tabel 4- Pergi ke SQl dari atas. 5- Melewati kode ini.

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

muhammad
sumber
Hal ini tampaknya menjadi sama dengan jawaban yang diterima kecuali untuk penggunaan kata kunci yang berbeda (dan yang lain adalah jauh lebih baik diformat). Apakah jawaban Anda benar-benar berbeda? Bisakah Anda menjelaskan caranya? Apakah jawaban Anda lebih baik? Mengapa? Tolong jangan menanggapi dalam komentar; edit jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott
@Scott Sebenarnya mereka sedikit berbeda: ALTER COLUMN Id AUTOINCREMENT (1001,1) dan ALTER COLUM [Id] COUNTER (8982,1) melihat kata AUTOINCREMENT dan COUNTER tetapi keduanya bekerja seperti yang diharapkan
willy wonka
1
@willyw: Benar; Saya mengatakan "sama ... kecuali untuk penggunaan kata kunci yang berbeda ".
Scott
@Scott ops ya Anda benar ... Saya membaca terlalu cepat, maaf ;-)
willy wonka
1

Situs web ini memiliki cara yang sangat sederhana untuk memulai nomor otomatis Anda dengan nomor apa pun yang Anda inginkan: http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp

Anda membuat kueri dengan ekspresi yang memberitahu bidang nomor otomatis untuk berubah

"Pertama, jalankan kueri ini:

INSERT INTO tblName (ID) SELECT 999 AS Expr1

Di mana tblName adalah nama tabel, dan ID adalah nama bidang AutoNumber.

Lalu, jalankan kueri kedua untuk menghapus baris yang Anda masukkan:

HAPUS DARI tblName WHERE ID = 999;

(Atau, Anda cukup membuka tabel dan menghapus baris yang Anda masukkan secara manual.)

Sekarang, catatan berikutnya yang ditambahkan ke tabel diberi nilai 1000.

Metode ini berfungsi dengan tabel baru, atau dengan tabel yang AutoNumbernya belum mencapai nilai Seed. (Tentu saja, bidang ID untuk baris yang ada tidak akan diubah, tetapi baris berikutnya akan dimulai dengan 1000.) "

George
sumber
0

Anda harus mengelabui Access karena mengasumsikan Anda tidak tertarik pada nomor otomatis yang berbeda dari yang disediakannya.

Anda harus memulai tabel dengan nomor otomatis kustom, yang akan memerlukan beberapa pengaturan. Tapi begitu itu terjadi, Anda bisa terus menambahkan dari sana.

Google "akses ganti autonumber start" dan Anda akan menemukan beberapa opsi untuk melakukan ini. Sebagian besar mengandalkan pembuatan kueri penambahan untuk memodifikasi bidang.

Buat tabel pertama yang berisi bidang tipe penghitung yang ingin Anda mulai di nomor lain. Jangan masukkan catatan apa pun. Buat tabel kedua, dengan bidang tipe bilangan bulat panjang tunggal yang memiliki nama yang sama dengan bidang penghitung di tabel pertama. Buat catatan di tabel kedua dengan memasukkan angka satu kurang dari angka yang Anda ingin memulai penghitung di tabel pertama. Buat kueri penambahan, untuk menambahkan satu catatan di tabel kedua ke tabel pertama, dan jalankan Hapus tabel kedua, hapus catatan yang Anda tambahkan ke tabel pertama, dan mulai memasukkan data.

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

Jika Anda merasa tidak ingin membuat kueri penambahan, Anda selalu dapat mengatur tabel dan menyalin dan menempelkan 1000 baris data dummy dari excel, menghapus catatan sampai Anda mencapai nomor 1001, dan teruskan dari sana.

UPDATE: Menambahkan penjelasan karena alasan

Alasan di balik angka auton yang hanya ditetapkan mulai dari 1 adalah bahwa bidang angka auton dimaksudkan untuk digunakan sebagai bidang referensi internal, dan dalam praktik basis data yang baik, seharusnya tidak digunakan secara umum dalam bentuk apa pun yang dapat dilihat secara publik. Ini digunakan dalam kasus di mana belum ada item unik dalam tabel yang diberikan untuk membuat entri unik dimana tabel dapat dicari dan diindeks.

music2myear
sumber
Pasti ada cara yang lebih mudah untuk melakukan ini ....
James Mertz
Saya kira berita baiknya adalah jika Anda perlu membuat beberapa tabel dengan nomor otomatis seperti itu, Anda dapat membuatnya, menyimpannya dalam file database "templat", dan menyalinnya ke file database baru sesuai kebutuhan.
music2myear
0

Ini adalah utas yang cukup lama, tetapi masih muncul sebagai tiga teratas hasil pencarian Google.

Salah satu alasan pengguna mungkin ingin mengubah nilai bidang autonumber adalah untuk memperbaiki kesalahan yang disebabkan oleh pengeditan database. Ketika seorang administrator mungkin ingin membuat beberapa perubahan besar ke ujung depan database, admin itu dapat membuat salinan dari semua tabel terkait, dan mengarahkan salinan pengembangan ujung depan ke ujung belakang ini. Jika perubahan cukup memadai, ia dapat mengganti salinan produksi ujung depan dengan salinannya, mengarahkan ulang semua tabel yang ditautkan setelah pengujian.

Tidak ada masalah, kan? Nah, penambahan nomor otomatis tetap dengan ujung depan. Jadi jika sisi produksi hanya menambah jumlah auton sebanyak 50 atau 500 atau 5.000 angka saat admin mengerjakan salinan, maka salinan produksi baru akan dengan mencoba ulang angka yang sama dan tidak akan dapat memasukkan item ke dalam bidang tersebut, satu pada suatu waktu, sampai mendapat "di tempat yang jelas". Salin 50, 500, atau 5000 baris data excel dan coba tempelkan. Ini akan kesalahan pada setiap baris (pastikan untuk menekan pesan lebih lanjut ketika muncul), tetapi angka otomatis akan bertambah dengan jumlah itu dan Anda baik untuk pergi lagi. Jika Anda menggunakan autonumbers dengan cara ini, akan disarankan untuk menambah angka ke apa pun db produksi sebelum ditimpa dengan salinan pengembangan Anda.

Ini juga merupakan cara untuk memulai nomor otomatis Anda pada sesuatu yang lebih tinggi dari 1. Seperti pengaturan lama pada penghitung kunjungan halaman pada 17.479 di beranda Geocities Anda, ketika benar-benar hanya dikunjungi 16 kali. Oleh Anda.

RunsWithScissors
sumber
0

Cara sederhana untuk mencapai sesuatu yang serupa adalah memiliki bidang Autonumber (misalnya "ID") dan bidang terhitung kedua (misalnya "ItemID") dan masukkan rumus "1000+ [ID]" untuk bidang terhitung. Bidang baru ini sekarang akan secara otomatis melacak bidang Autonumber, tetapi akan mulai dari 1001 bukan 1.

Brent
sumber
0

Saya percaya ini dapat mencapai rentang kenaikan kustom Anda dengan terlebih dahulu membuat tabel tersembunyi yang akan menjaga jarak awal kenaikan otomatis mulai dari nol ke pilihan Anda, mis. tabel itu akan menyimpan 0 hingga 1050 Kemudian Anda mulai dengan penambahan 1055, 1060, 1065 dll. Anda kemudian akan menyembunyikan bagian data ini dari tabel. Semoga ini membantu. Sepertinya Access dirancang untuk terlihat awalnya dari nol, karena konflik akan muncul.

ssurjie
sumber