电话号码面具 - 国际

时间:2011-08-11 17:44:50

标签: ms-access vba input mask

我的问题

我的客户联系人数据库中有来自世界各地的各种客户,这导致我的电话号码出现问题 - 因为其他国家/地区的格式化方式不同。所以我的问题是,首先是因为我还有一个国家/地区 - 是否可以根据客户所在的国家/地区更改面具类型?

示例:

In Canada -> (xxx)xxx-xxxx
In Australia -> (xx) xxxx-xxxx
In South Africa -> xx (x) xx-xxx-xxxx

x - 数字的占位符

这可能吗?

1 个答案:

答案 0 :(得分:1)

Hans提到他无法在运行时更改输入掩码 - 我还没有看到他之前的答案,但这似乎对我有用。我的表单有一个国家/地区的下拉菜单(cmbCountry)和一个电话文本框。我的组合框(cmbCountry)绑定到一个表(Row Source = SELECT [_ masks].Country, [_ masks].Mask FROM [_ masks];)。通过使“宽度为零”隐藏“掩码”字段。

我还将表单绑定到存储国家/地区和电话号码的表格中。当国家/地区发生变化或记录发生变化时,我会更改ListIndex属性。

仅供参考 - 我在设计模式中给输入掩码任何默认值。

@HansUp,这与您已经拥有的相似吗?对不起,如果我以同样的方式重新回答这个问题。

在表单背后的代码中:

Private Sub cmbCountry_Change()
    Dim sMask
    If cmbCountry.ListIndex > -1 Then
        sMask = cmbCountry.Column(1, cmbCountry.ListIndex)
        tbPhone.InputMask = sMask
    End If
End Sub

Private Sub Form_Current()
    cmbCountry_Change
End Sub