回答

收藏

如何重设Access表中的自动编号字段?(不是从1开始)

技术问答 技术问答 99 人阅读 | 0 人回复 | 2023-09-13

我有一条INSERT INTO ... SELECT将数据从一个表复制到另一个表。
; u7 c2 y% |* K1 u. {1 |( r但问题是,在第二个表中AutoNumber列值从第一表中的最后一个数字开始。
# z; U, i9 n. y  W这意味着第一个表的计数是2000,然后第二个表从2001开始。
1 R0 b, H$ `4 g. l使用Access如何在数据库中重置此值?0 e' a  H* P2 t2 r
                                                               
( i* s( b( V. l. `( u( K0 V    解决方案:                                                                4 F& @7 O1 Z) T" r
                                                                您可以从ADO执行Access DDL句子重置自动编号的种子值。这是窗口会话的例子:
0 Y* A3 V  c1 h5 u$ E6 fstrDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1,1);"CurrentProject.Connection.Execute strDdl该语句必须从ADO执行。如果你使用它DAO(例如CurrentDb.ExecutestrDdl)或通过Access如果设计师试图失败,它将失败。这个例子是成功的,因为CurrentProject.Connection是一个ADO对象。/ @4 }. A. Z( Z
后两个值COUNTER是 seed    和 crement3 ^3 R  @6 d9 B9 C" G
。因此,如果我希望自动编号从1000开始并增加2,可以使用COUNTER(1000,2)% Y: _; _) I# N6 U
如果表中包含数据,则种子值必须大于最大存储值。如果执行语句时表为空,则不会有问题。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则