MS Access 2013 Web App - 为0到9999之间的字段创建唯一值

时间:2016-03-11 22:12:15

标签: ms-access sharepoint access-vba

我有一张桌子,我需要这个领域" DirNum"是一个0到9999之间的唯一数字。此外,用户需要能够手动分配"随机"该字段的唯一编号,只要介于0到9999之间(例如编号8000)。

由于不可能期望我的用户每次都能猜出唯一的数字,我希望能够为他们创建这个数字。我对如何做到这一点非常开放。

所以我考虑过:

  • 将此唯一编号的默认值设为
  • 制作一个控制按钮 插入此唯一号码
  • 制作"新"控制按钮 插入此新记录

问题是,我真的不知道如何去做这件事。

我认为最好的方法是查询" DirNum"的所有现有值。并将最低值分配给新记录。但我甚至不知道在编码时从哪里开始。

1 个答案:

答案 0 :(得分:0)

您可以在vba中创建一个函数来执行此操作。这将返回下一个可用的id或0(如果没有)。 9999设定了上限。

Public Function getNextAvailableID() As Integer

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Select ID From TestUniqueNumber order by id", dbOpenSnapshot)
Dim intLastID As Integer
Dim intNextAvailableID As Integer

intLastID = 0
With rst
    .MoveFirst

    Do Until .EOF Or intLastID = 9999
        If rst!ID - intLastID > 1 Then
            intNextAvailableID = intLastID + 1
            Exit Do
        End If
        intLastID = rst!ID


        .MoveNext
    Loop
End With
getNextAvailableID = intNextAvailableID
End Function

如果你的行数多于9999且vba太慢,你可以查看一个SQL语句来处理这个问题。