我们在查询中有一个字段,如果它太短,应该用零填充,我们使用Format()函数完成此操作。但是,有些值会产生奇怪的结果。
Format("14425112-8","00000000-00")
返回值“00019330-78”
对于大多数输入,字符串按预期格式化,8位,连字符,两位数。但在少数情况下,该值会被修改。这对其他人来说是否可重复?有人有解释吗?
感谢您的帮助。
答案 0 :(得分:1)
这是一个尝试过于有用的访问示例。看起来它将这些值解释为日期,但由于您没有使用格式的任何日期指示符,例如:(dd,mm,yyyy),它将1-1转换为日期,然后尝试将其显示为十进制形式:
debug.print Format("1-1","000000-00")
返回000427-36
,这是十进制值42736
,如果转换为日期,则会变为1/1/2017
。这就是将访问解释为“1-1”的原因。
似乎访问已将-
字符保留为符号日期格式,尽管their website says。此功能仅用于格式化实际日期或数值,例如价格。如果您使用格式化功能,则必须将分隔符更改为小数点,这显然是唯一可以使用前导零和尾随零点获得所需内容的字符。
否则,您可能需要为此构建自己的函数。
答案 1 :(得分:1)
您不能以这种方式格式化字符串。试试这个:
PaddedNumber = Right(String(8, "0") & "14425112-8", 10)