Access 2013 增加表单中的文本 ID 字段

Access 2013 Increment a text ID field in a form

我从 excel 文件创建了一个数据库,其中一列 (PK) 是许可证号,但这是文本格式 XX/XX/XXXX

创建新记录时,我希望表单使用包含文本和数字的类似 ID 自动填充许可证号字段。每条新记录都必须递增(仅数字部分)

这正是我想要实现的,但是我收到如下所示的错误; https://www.youtube.com/watch?v=kPz-n5w5YtE

任何帮助将不胜感激,我有使用 VB 的经验,但是我熟悉其他编程语言。

如果您的想法是取一个数字 (8) 并将其转换为“0008”,如错误上方的评论所示,请尝试这样:

strNextNumber = Format(lngNextNumber, "0000")

或查看完整代码:

Public Sub TestMe()    
    Dim strNextNumber As String
    Dim lngNextNumber As Long
    lngNextNumber = 8
    strNextNumber = Format(lngNextNumber, "0000")
    Debug.Print strNextNumber        
End Sub

如果 lngNextNumber 大于 9999,String 函数的第一个参数将为 -1 或更小,因此无效。

因此您可以先检查 lngNextNumber 的值。

If lngNextNumber < 10000 Then
    strNextNumber = String(4 - Len(CStr(lngNextNumber)), "0") & CStr(lngNextNumber)
Else
    strNextNumber = CStr(lngNextNumber)        
End If

或者更简单,使用 Format 函数,就像 Vityata 的回答中已经提到的那样。

strNextNumber = Format(lngNextNumber, "0000")

只需要一行:

' Old license like "WT/7634/2002".
' New license like "ABC2003"
Me![License Number].Value = Format(Val(Right(DMax("[License Number]", [Licenses]), 4)) + 1, "\A\B\C0000")