Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何为Microsoft Access字段设计验证规则,将输入限制为特定Unicode范围内的字符?_Vba_Validation_Ms Access_Unicode_Expression - Fatal编程技术网

Vba 如何为Microsoft Access字段设计验证规则,将输入限制为特定Unicode范围内的字符?

Vba 如何为Microsoft Access字段设计验证规则,将输入限制为特定Unicode范围内的字符?,vba,validation,ms-access,unicode,expression,Vba,Validation,Ms Access,Unicode,Expression,假设我需要将一个字段限制为范围(U+A960–U+A97f)中的1个字符,我如何将字符的代码与范围进行比较?写入时,我对该范围内的字符的验证失败: Len([C])=1 And AscW([C]) Between 43360 And 43391 虽然这个不起作用的示例看起来很简单,但我可能不得不用更复杂的表达式替换[C],因此AscW与Between运算符的简单性便于避免重复[C]AscW返回带符号的16位整数,因此Between表达式将始终返回False,因为所比较的整数超出该类型的范围(-

假设我需要将一个字段限制为范围(U+A960–U+A97f)中的1个字符,我如何将字符的代码与范围进行比较?写入时,我对该范围内的字符的验证失败:

Len([C])=1 And AscW([C]) Between 43360 And 43391

虽然这个不起作用的示例看起来很简单,但我可能不得不用更复杂的表达式替换
[C]
,因此
AscW
Between
运算符的简单性便于避免重复
[C]
AscW
返回带符号的16位整数,因此
Between
表达式将始终返回
False
,因为所比较的整数超出该类型的范围(-32768到32767)。使用大于32767的任何值的最大值。在您的情况下,
43360
变成
-22176
43391
变成
-22145

Len([C])=1 And AscW([C]) Between -22176 And -22145

[C]=”ꥼ"
AscW([C])
将返回
-22148
,这将导致整个表达式的计算结果为
True
,在创建字段验证规则时无需使用字符号。只需通过指定上限和下限来测试字符是否在所需范围内:

Len([C])=1 And [C] Between "ꥠ" And "ꥼ"
请注意,这使用数据库排序顺序,因此您希望确保将其设置为适当的排序顺序,而不是常规(遗留)排序顺序,这可能会导致unicode字符出现问题