如何使Access中的新自动编号遵循上一个自动编号

时间:2016-01-05 21:09:57

标签: sql ms-access

我有一个小学校项目,我创建了30个问题的考试,我从数据库表中显示这些问题,其中包括70个问题(我提前创建)。 我使用1和MaxID之间的随机唯一整数数组(在问题表中)使用它们的ID(自动编号,也是主键)来获取这些问题并显示它们。 我的老师告诉我创建一个页面,管理员可以在其中添加我所做的问题。

问题开始时我添加一个问题(ID == 71),然后删除问题并添加另一个问题(ID == 72)如果最后一个ID是72(例如),之前是70,那么如果数字71包含在随机唯一整数的数组中,这将导致问题,因为在访问表中没有包含71的行。

我的问题是: 我可以在自动编号列中创建ID,而不是表中最后一个ID吗?

我知道它有点长,但我真的为此感到困扰,如果有什么不清楚的地方,请告诉我,我可以说清楚。

3 个答案:

答案 0 :(得分:0)

不,自动编号将是上次使用的+1。实现此目的的唯一方法是将自己的值分配给ID,但如果删除中间的记录,您仍然会遇到类似的问题。

答案 1 :(得分:0)

作为一种解决方法,您可以使用INSERT SQL添加新记录。使用表单或表数据编辑器时,无法控制自动编号字段中的编号,但直接SQL允许将所需值插入自动编号字段。此次访问后,下一个数字将生成数字=插入值+1。因此,如果您添加然后删除了#71,您仍然可以使用insert into Table1 (id,data) select 71,"text"插入所需的数据。

但在你的情况下,我会建议使用不同的原则来选择随机问题。例如,每次在问题列表中进行更改时,添加带有问题索引的新列并在此字段中重新生成后续数字

答案 2 :(得分:0)

您的问题是您滥用自动编号 - 它仅用于识别单个记录。在任何情况下,它都不是也不应该有意义。

因此,当您创建了问题时,请填写另一个字段(QuestionId)。 1到n。然后从这个数字中随机选择。