Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 查找Access表中的最后一条记录_Vba_Ms Access - Fatal编程技术网

Vba 查找Access表中的最后一条记录

Vba 查找Access表中的最后一条记录,vba,ms-access,Vba,Ms Access,我有一个items表,我将在其中添加一个表单来搜索和维护表中的记录。我肯定错过了一件事,那就是将ItemNumber(PK)设置为数字数据类型,而不是自动编号。我现在在其他表中有数千条引用这些ItemNumber的记录,但我需要一种方法,从本质上使数字成为“假”自动编号。因此,当用户创建一个新项目时,将包含itemnumber的文本框将需要查看它是否是一个新记录。如果是,请查看下一个数字需要是什么。是否有人可以显示需要运行的VBA或宏的示例 注意:我确实对该字段进行了索引,以便在该数字已被使用时

我有一个items表,我将在其中添加一个表单来搜索和维护表中的记录。我肯定错过了一件事,那就是将ItemNumber(PK)设置为数字数据类型,而不是自动编号。我现在在其他表中有数千条引用这些ItemNumber的记录,但我需要一种方法,从本质上使数字成为“假”自动编号。因此,当用户创建一个新项目时,将包含itemnumber的文本框将需要查看它是否是一个新记录。如果是,请查看下一个数字需要是什么。是否有人可以显示需要运行的VBA或宏的示例

注意:我确实对该字段进行了索引,以便在该数字已被使用时通知用户。
Access 2016

据我所知,您有一个具有唯一PK、常规编号数据类型的表,并且您希望具有自动编号功能。如果是这样的话,很容易将数据类型更改为自动编号。您不能在表设计器的“自动编号”字段中插入任何所需的值,但可以使用SQL
insert
进行插入。所以,只需使用自动编号数据类型创建新表,使用查询将所有记录从旧表复制到新表,包括PK数据,将现有的13个表重新链接到新表,删除旧表并重命名新表。其他表中不需要进行其他更改,它们将保留对具有自动编号的表的相同引用。此操作压缩并修复数据库后,将自动编号重置为最大插入值

现在,在表单中,您可以在更改新记录中的任何其他字段后立即查看和读取新的自动编号值

如果您仍然希望创建自己的序列,并且您的数据库是多用户的,我建议您按照Microsoft的建议实施它:


但最好使用自动编号作为主键,将来问题会少一些。

据我所知,您有一个具有唯一主键、常规编号数据类型的表,并且希望具有自动编号功能。如果是这样的话,很容易将数据类型更改为自动编号。您不能在表设计器的“自动编号”字段中插入任何所需的值,但可以使用SQL
insert
进行插入。所以,只需使用自动编号数据类型创建新表,使用查询将所有记录从旧表复制到新表,包括PK数据,将现有的13个表重新链接到新表,删除旧表并重命名新表。其他表中不需要进行其他更改,它们将保留对具有自动编号的表的相同引用。此操作压缩并修复数据库后,将自动编号重置为最大插入值

现在,在表单中,您可以在更改新记录中的任何其他字段后立即查看和读取新的自动编号值

如果您仍然希望创建自己的序列,并且您的数据库是多用户的,我建议您按照Microsoft的建议实施它:


但最好使用“自动编号”作为主键,以后问题会少一些。

您不能将该字段设置为“自动编号”吗?FWIW,使用SQL有几种方法可以做到这一点-
从表中选择最大值(ItemNumber)
从表中按ItemNumber DESC排序选择前1个ItemNumber,等等@Comintern,我想将其设置为自动编号,但最终会更改许多其他地方引用的主键,使大量数据不正确和无效。我将尝试编写一个查询,并根据该查询的结果生成下一个数字。谢谢,我甚至没有想到。所以先打开级联更新。根据我的尝试,我必须删除该字段,然后将其重新创建为自动编号,因为一旦设置为“编号”,您就无法将数据类型更改为“自动编号”。要么这样,要么我必须创建一个新表,并将项目编号以外的数据复制到其中。你知道解决这个问题的方法吗?数据库101:永远不允许用户管理PKs!在DEV沙箱中,考虑1)添加AutoNoSO字段保持原始的、2的临时中断关系,3)将所有表FKS更新为新的自动编号:<代码>其中子句设置为原始,4)重新建立关系,5)删除原始。看看为什么数据库设计是生命周期中非常关键的一步!你不能把这个字段变成一个自动编号吗?FWIW,使用SQL有几种方法可以做到这一点-
从表中选择最大值(ItemNumber)
从表中按ItemNumber DESC排序选择前1个ItemNumber,等等@Comintern,我想将其设置为自动编号,但最终会更改许多其他地方引用的主键,使大量数据不正确和无效。我将尝试编写一个查询,并根据该查询的结果生成下一个数字。谢谢,我甚至没有想到。所以先打开级联更新。根据我的尝试,我必须删除该字段,然后将其重新创建为自动编号,因为一旦设置为“编号”,您就无法将数据类型更改为“自动编号”。要么这样,要么我必须创建一个新表,并将项目编号以外的数据复制到其中。你知道解决这个问题的方法吗?数据库101:永远不允许用户管理PKs!在DEV沙箱中,考虑1)添加AutoNoSO字段保持原始的、2的临时中断关系,3)将所有表FKS更新为新的自动编号:<代码>其中子句设置为原始,4)重新建立关系,5)删除原始。看看为什么数据库设计是生命周期中非常关键的一步!