如何在 Microsoft Access 报表设计器中格式化文本字段?

如何在 Microsoft Access 报表设计器中格式化文本字段?

我有一个字段(字符串),打印在报告上时看起来像这样:“0000000840509001”。我希望它看起来像这样:“84-05-090.01”。有没有办法在报告设计层面做到这一点?

基本上,我想去掉前导零,并将剩余的字符串放入 ##-##-###.## 格式。

答案1

遗憾的是,没有单一的方法可以去除前导零......但这是我学到的一个小技巧......

format(replace(ltrim(replace([your-field-name],"0"," "))," ","0"),##-##-###.##)

坏了……

format(
  replace(
    ltrim(
      replace(
        [your-field-name],
        "0",
        " "
      )
    ),
    " ",
    "0"
  ),
  "##-##-###.##"
)

解决这一疯狂问题的方法是用空格字符替换所有零,然后仅在左侧“修剪”它。(我们不希望结尾的零消失)然后用零替换空格字符......最后按照您想要的方式格式化它。

或者...而不是试图修剪数字...您也可以使用 cint() 将其转换为实际整数,然后像这样格式化它:

format(cint([your-field-name]),"##-##-###.##")

这两种方法可能都无法按您想要的方式工作......仅仅是因为没有错误检查所提供的输入是否有效。即,如果您有 10 个(或更多)有效数字而不是 9 个......它会默默地截断前导数字......此外,使用 cInt 不会接受“字符”,例如“0000000ABCDEFGHI”或其他......

您可能希望在 vb-script 中创建一个函数来正确进行格式化...然后在报告中使用它。但这是一个更复杂的主题...所以我不会在这里讨论它。

相关内容