如何用十六进制字符限制输入掩码范围

How to limit input mask range with hex characters

我正在尝试设置允许用户输入 MAC-地址的输入掩码,地址由十六进制字符组成:0-9、A-F。

到目前为止我得到的是:

>AA\-AA\-AA\-AA\-AA\-AA

但是这种格式允许输入所有字母字符。

问题是:

如何使用十六进制字符限制输入掩码范围?

您不能使用输入掩码执行此操作,但可以使用如下所示的验证规则 属性。它会让他们输入他们想要的任何内容,但在符合您的规则之前不会让他们保存数据。

Not Like "*[!((a-f) or (0-9))]*"

我分两部分实现了这个:

  1. >"#"AAAAAA;0;_ 的输入掩码,这确保用户只能输入#(已预先填写),然后是六个大写字符。
  2. Like "[#][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]" 的验证规则 确保字段是 # 然后是六个字符,即 0、1、2、3、4、5、6、7 , 8, 9, A, B, C, D, E, F.

这对我来说效果很好,不需要 VBA 代码。

未能找到合适的解决方案,我阅读了说明,并提出了以下建议;

限制输入以“#”开头的任何十六进制序列。即#FF01A2 (pink/purple?)

警告 - 请注意掩码和验证规则可能会在查看的数据和存储的数据之间产生歧义。以下规则存储 6 个字符而不是 7 个字符,不包括基础数据中的“#”符号。

输入掩码 - 自动显示井号并将所有后续输入限制为 6 个数字或字母的任意组合。 (">">" 运算符将其后的任何字母更改为大写。在井号前加上反斜杠或将其括在引号中,使其成为文字。)

"#">AAAAAA\#>AAAAAA 都行。

验证规则 - 将条目限制为 0-9 和 a-f。 (大小写由上面的输入掩码修改。由于上面的输入掩码将条目限制为 6 个字符,因此在此处使用括号外的星号避免了此规则中的冗余。)

Not Like "*[!0-9A-F]*"

验证文本 - 可选但推荐给用户一些上下文。

Must be in hex format: 0-9, A-F only!(将显示在标准消息框中。)

访问 Table 字段属性 - 如下所示。

注意:我在网上看到很多例子,包括 "Is Null"、"OR" 的使用,以及每个字符的单独规则 - 我发现所有这些都有点多余,如果它们真的有效的话。