格式函数 returns 错误值

Format Function returns wrong value

我们在查询中有一个字段,如果它太短则应该用零填充左侧,我们使用 Format() 函数完成此操作。但是,有些值会产生奇怪的结果。

Format("14425112-8","00000000-00")

Returns 值“00019330-78”

对于大多数输入,字符串的格式符合预期,8 位数字,连字符,两位数。但在极少数情况下,该值会被修改。这对其他人来说是可重复的吗?有人有解释吗?

感谢您的帮助。

这是一个试图提供过多帮助的访问示例。看起来它正在将这些值解释为日期,但由于您没有使用格式中的任何日期指示符,例如:(dd,mm,yyyy),它会将 1-1 转换为日期,然后尝试将其显示在小数形式:

debug.print Format("1-1","000000-00")

returns 000427-36 是十进制值 42736,如果将其转换为日期,则变为 1/1/2017。这就是 access 将“1-1”解释为的内容。

似乎 access 保留了 - 字符作为日期格式的象征,尽管 their website says。此函数仅对格式化实际日期或数值(如价格)有用。如果您开始使用 format 函数,则必须将分隔符更改为小数点,这显然是唯一可以通过前导零和尾随零获得所需内容的字符。

否则,您可能必须为此构建自己的函数。

您不能用这种方式将字符串格式化为数字。试试这个:

PaddedNumber = Right(String(8, "0") & "14425112-8", 10)