【发布时间】:2018-01-12 11:35:48
【问题描述】:
在我的数据库中,序列号存储为 整数。 我想用不同的格式在 Access-frontend 组合框中表示这些数字:
- "121212345" --> "12.12.12345"
When a number is chosen it should be stored as an Integer again.
我已经尝试使用一些 VBA 代码自己填充组合框:
- 使用查询选择所有数字
- 迭代所有数字并将每个数字转换为新形式
- 将每个转换后的数字放入组合框
做出选择后,我使用 afterUpdate-Event 将其转换回整数值并将其存储在我的表中。
这种方法效果很好,但填充组合框需要很长时间(20.000 个数字需要 4 秒)。
有没有更快的方法?
当我只使用普通整数字段作为记录源时,该框很快就会被填充。
编辑:
'populate Combobobox:
Set db = CurrentDb
strSQL = "SELECT intSerialNumber FROM tblXXXX"
Set rs = db.OpenRecordset(strSQL)
Do While Not rs.EOF
strCurrentSerNum = rs.Fields(0).Value
Dim strSerNum As String
'xxxxxxxxx to xx.xx.xxxxx when possible
If (Len(strCurrentSerNum)) = 9 Then
strSerNum = Left(strCurrentSerNum, 2) & "." &
Mid(strCurrentSerNum, 3, 2) & "." & Right(strCurrentSerNum, 5)
Else
strSerNum = strCurrentSerNum
End If
cboSerNum.AddItem (strSerNum)
rs.MoveNext
Loop
【问题讨论】:
-
请发布您用于迭代整数并修改它们以在视图中显示的代码。还包括检索数据的代码。
-
我用一些代码编辑了我的帖子
标签: vba ms-access combobox formatting