更改访问自动编号值

时间:2020-04-10 09:56:27

标签: sql ms-access auto-increment autonumber

我有一个旧版Access数据库。其中的VB代码需要一条特殊记录,在特定表中具有自动编号ID值1

所讨论的表具有主键作为自动编号。该列在其他表中也称为外键。这就是为什么我不能删除或修改表的主键的原因。

我尝试使用重置计数器

ALTER TABLE myTable ALTER COLUMN tId COUNTER(1,1)

但是它说我不能改变桌子。而且我无法手动设置列值。

如何在现有的主键自动编号列中输入特定值?

1 个答案:

答案 0 :(得分:2)

您可以使用ADOX更改Access中自动编号字段的种子:

Public Sub SetAutonumber(TableName As String, ColumnName As String, Seed As Long)
    Dim c As Object 'ADOX.Catalog
    Set c = CreateObject("ADOX.Catalog")
    Set c.ActiveConnection = CurrentProject.Connection
    c.Tables(TableName).Columns(ColumnName).Properties("Seed") = Seed
End Sub

使用立即窗口调用它:

SetAutonumber "MyTable", "tId", 1

记住要重置它:

SetAutonumber "MyTable", "tId", DMAX("tId", "MyTable") + 1

但是请注意,Access允许在自动编号字段中插入。它仅是通过GUI只读的,但是允许查询和VBA对其进行更改。

INSERT INTO myTable (tId) VALUES(1)

这可能会绕过设置种子然后重新设置种子的需要。

还请注意:Access中允许使用负的自动编号(始终对自动编号字段进行签名),但如果不手动设置种子/设置它们/损坏

,则永远不会出现

相关问题