【问题标题】:Autonumber - specify starting point自动编号 - 指定起点
【发布时间】:2011-06-23 01:10:38
【问题描述】:

MS Access 2007

我正在尝试从 5,000 开始自动编号,并为每个条目增加 9。有没有办法做到这一点?它不必与自动编号一起使用,如果 Access 中有另一种方法可以做到这一点,那也很棒。请帮忙。

【问题讨论】:

  • 为什么要这样做?自动编号列应仅用于提供唯一索引。它应该没有额外的语义含义。

标签: sql ms-access


【解决方案1】:

您可以使用 ADO 下的 DDL 来设置自动编号种子和增量。 (但是,呼应@mwolfe02 的评论……为什么?)

Dim strSql as String
strSql = "ALTER TABLE YourTable ALTER COLUMN YourAutoNumberColumn COUNTER(5000, 9)"
CurrentProject.Connection.Execute strSql

还可以看看之前的 Stack Overflow 问题是否对您有用:How to reset autonumber seed - MS Access/VB6

【讨论】:

  • @HansUp,我之所以需要这样做是因为我的老板要求这样做。除此之外,我真的不知道。您认为将其仅应用于数字列而不是 AutoNumber 列是否更合乎逻辑?
  • 嗯。如果它是一个常规编号,而不是自动编号,您需要制定一个计划来生成(并维护?)您的老板要求的顺序......这可能具有挑战性。如果记录被删除,您是否必须“回填”序列,或者是否还要求记录永不被删除?
  • 不,没有回填要求,所以我想这会让它更容易实现。我实际上从未接触过 Visual Basic,但我想上面的代码不会太难执行。也许我只是乐观:)
  • 您是否考虑过仍然可以附加中间值?也就是说,仅仅因为你有 5000、5009 和 5018 并不意味着 SQL INSERT 不能插入 5001、5015 或 4099。你的老板想要将意义投资于不应该有意义的事情上导致悲伤。
【解决方案2】:

我想不出为什么需要这样一只野兽。

但您可以使用从 1 开始并增加 1 的“普通”自动编号,然后只显示(并使用)计算列:

FakeAutoNumber = (AutoNumber * 9) + 4991

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-22
    • 2016-06-05
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多