这与 Access 本身无关。在任何 VBA 中,如果文本由 a 、 或 a 分隔,格式函数的行为将SPACE
如下HYPHEN
所示DASH
。所以这
Debug.Print Format("093 0005", "0000000000000")
Debug.Print Format("093/0005", "0000000000000")
Debug.Print Format("093-0005", "0000000000000")
将返回0000000034090
它将尝试将其转换为日期或数字,如果它是有效的日期或数字,那么它将显示它的数字等价物。如果它不是等效的日期或数字,那么它将保持原样。我认为原因是该Format
函数无法确定值的“格式”并将其作为字符串。类似于当时的说法Format("Blah", "0000000000000")
。但很明显,您不会期望Format
函数将其格式化为000000000blah
.
不幸的是,我在 MS 知识库中找不到任何文章来解释为什么 Format 函数会这样。
我过去发现解决它的唯一方法是使用该VAL
函数将其转换为数字。所以
Debug.Print Format(Val("093 0005"), "0000000000000")
会给你想要的结果0000000930005
但是,如果数字由 aHYPHEN
或 a分隔,DASH
则该VAL
功能无用。为此,您将不得不使用REPLACE
将HYPHEN
orDASH
替换为SPACE
。但是我怀疑您是否会格式化具有 aHYPHEN
或 a 的数字DASH
。