Access 中缺少自动编号

missing autonumbers in Access

我有一个非常基本的数据库,只有一个主 table 和一些查找 - 没有关系。

主要 table 中的自动编号字段几乎没有与其形式关联的代码,但我注意到每 10 条记录左右它会跳过一个数字。

我已将数据库从用户那里锁得严严实实,因此他们没有删除权限,并且只能在创建后非常谨慎地修改记录。他们无法删除错误的条目 - 他们必须勾选一个名为“取消”的框,以便从列表中删除条目并重新开始。 - 删除记录的唯一方法是按住 SHIFT-OPEN,打开 table 并从那里删除...我怀疑他们正在这样做,但一切皆有可能...

问题是这样的——我看到过许多关于类似问题的网络讨论,但解决方案通常指向某些代码或格式问题或 SQL/Access 问题……我没有这样的系统…… . 它是在本地网络上使用链接 table 的直接前端/后端数据库。 有人可以告诉我这是否只是一个访问问题而只是忽略它或者这是非常不寻常的并且有人正在删除记录......如果有人正在删除记录 - 有什么方法我可以保护 PW如果它试图在编辑模式下打开?或者我可以用 PW 保护 table 本身吗?

或者甚至更好 - 有没有办法我可以添加一些字段和代码,看看到底发生了什么?是访问权限没有创建那个 # 还是有人在搞我? 谢谢

数据库自动编号的基本规则就是它们是内部编号——故事结束!我的意思是,当你加载一个 word 文档时,你关心使用的内存段号吗?自动编号用于设置表之间的关系。它们是一个“概念”,如果表格通过图片、丛林中的猿类吃香蕉或一些自动麻木的序列连接起来,你不在乎。

但是,要回答您的问题,如果您跳转到一条新记录,然后开始键入,则该记录是脏的。当然用户可能会决定,嘿,我不想添加这条记录。如果他们选择编辑->撤消,或按 control-z 然后退出,则不会创建也不会保存记录。但是,自动编号将增加。我的意思是因为数据库是多用户的,然后一个用户开始工作,然后另一个 - 他们都会被分配一个自动编号 - 但他们都可能决定不保存。

不会为最终用户赋予自动编号意义,实际上它们永远不应该看起来像它们。用户也不会看到记录或 word 文档加载到的计算机内存段——他们不在乎。

内部索引的方式和表的布局方式以及它们的工作方式是数据库引擎的唯一问题,与您或您的用户无关。

现在您当然“知道”您的计算机有内存,但您不会向最终用户公开使用的“内存”位置,因为此类内部管理编号就是内部管理编号。

除了用户在添加记录时点击取消和放弃外,一般删除记录也会产生间隙。

如果您要查找某种编号规则,请创建一个发票编号字段或其他任何字段。虽然可能需要发票号,但如果您使用内部自动编号,那么您的数据库设计就可以正常工作,因为您没有一些社会保险号或一些愚蠢的发票号。在发展表之间的关系时,它们与您有什么关系? (答案:绝对没有!!!)

您的数据库在没有发票编号或其他编号的情况下仍能正常运行这一事实与用于管理和维护关系的内部编号有关。

你在你的数据库中定义关系——这些关系与你的用户的想法、了解等是零关系。这些数字没有更多的意义,然后你的计算机 ram 中用于加载记录的内存段就没有意义了。

如果您需要某种发票编号或其他序列号,则必须将该设计部分添加到您的数据库中。这些数字与 Access 使用和维护以建立关系的一些内部数字有零关系。

在多用户环境中,由于添加或删除,作为一般规则,您不妨假设自动编号是随机的——它们对用户没有意义,对需要某种类型的业务规则也没有任何意义序列号。