访问 VBA:查找列中的最大数字并加 1

Pao*_*oni 4 ms-access vba find

在我的 Access 数据库中,我有一个名为“Demande”的表。我想读取“Numero de Commande”列中的所有记录并读取该列中最大的数字,以便我可以将该数字用于下一个新记录。

这是我的桌子:

表格图片

关键索引是针对 Numero de Commande 的。

这是我当前的代码:

 Dim highestInt as Integer
 Dim newNumeroCommande as Integer

 Set currentDatabase = CurrentDb
 Set rstDemande = currentDatabase.OpenRecordset("Demande")

 ' Find the highest integer in the column "Numero de Commande"

 newNumeroCommande = highestInt + 1
 rstDemande.AddNew
 rstDemande("Numero de Commande").Value = newNumeroCommande 
 rstDemande.Update
Run Code Online (Sandbox Code Playgroud)

感谢您的所有帮助。

Mat*_*nan 5

只要该列仅包含没有字母的数值,那么您就可以使用:

NewNumeroCommande = Dmax("[Numero de Commande]", "Demande") + 1
Run Code Online (Sandbox Code Playgroud)

注意:这不是我推荐的方法,而只是 Access 的内置选项,如果可能的话,您可以使用自动编号来省去麻烦,或者您可以有一个单独的“计数器”表来记录最高记录数,当如果您想创建另一个表,可以锁定该表,将值加一(然后使用它),然后释放锁,这在多用户环境中会更有效。

  • @PaoloBernasconi 理想的方法是没有一个表示任何内容的字段,然后可以通过自动编号提供下一个数字。如果您必须有一个序列很重要的字段,则需要更多的代码和一个小表来保存种子。 (2认同)