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")
我从 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")