我已经从excel文件创建了一个数据库,其中一列(PK)是许可证编号,但这是文本格式XX / XX / XXXX
创建新记录时,我希望表单能够使用包含文本和数字的类似ID自动填充许可证编号字段。这必须随每个新记录(仅数字部分)递增
这正是我想要的,但是我得到的错误如下所示; https://www.youtube.com/watch?v=kPz-n5w5YtE
任何帮助将不胜感激,我有VB的经验,但我熟悉其他编程语言。
答案 0 :(得分:2)
如果您的想法是取一个数字(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
答案 1 :(得分:1)
如果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")
答案 2 :(得分:1)
只需要一行:
' 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")