格式化组合框元素

时间:2018-01-12 11:35:48

标签: vba ms-access combobox formatting

在我的数据库中,序列号存储为整数。 我想在具有不同形式的Access-frontend组合框中表示这些数字:

  • “121212345” - > “12.12.12345”

当选择一个数字时,它应该再次存储为整数。

我已经尝试使用一些 VBA 代码填充组合框:

  1. 使用查询选择所有数字
  2. 迭代所有数字并将每个数字转换为新形式
  3. 将每个转换后的号码放入组合框中
  4. 选择后,我使用 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
    

1 个答案:

答案 0 :(得分:0)

您应该使用输入掩码属性。

有效输入掩码可以实现以下目标:

##.##.#####;;