访问2003文本显示前导零

时间:2013-06-28 12:46:16

标签: ms-access

我们目前正在使用Access 2003.我有一个车辆维护日志,其中包含车辆编号的文本字段。该字段需要是文本,因为当车辆退役时它将具有R。他们希望该字段为四位数字,前导零。因此,车辆22将显示在表格中并报告为0022,并且当退役时,它将是R0022。我试图将字段的格式更改为“0000”和“0000”#,但这些都不会显示前导零。

1 个答案:

答案 0 :(得分:2)

您真的希望用户手动编辑该字段吗? 我不喜欢这样的解决方案,因为它容易出错(除非你检查很多东西以确保没有人输入无效数据)并且对你的用户感觉不好。

我只想在表格中保存以下内容:

  • 数字字段中的车辆编号(22,而不是0022
  • 一个布尔字段,指示车辆是否已退役

这对您的用户来说更容易使用:

  • 他们只需输入新车号而无需考虑前导零
  • 要让车辆退役,他们只需要设置一个复选框,而不是将正确的字母放在车号前面

另外,现在显示所需的数字R0022只是显示/格式化表格中的数据:

Public Function GetDisplayNo(VehicleNo As Integer, IsRetired As Boolean) As String

    GetDisplayNo = IIf(IsRetired, "R", "") & Right("0000" & VehicleNo, 4)

End Function

您可以像这样使用此功能:

GetDisplayNo(22, True)返回R0022

GetDisplayNo(22, False)返回0022

如果您需要在报告或连续表格中显示车辆编号列表,您可以直接在基础查询中使用此功能:

SELECT 
    Vehicles.VehicleNo, 
    Vehicles.IsRetired,
    GetDisplayNo([VehicleNo],[IsRetired]) AS DisplayNumber
FROM Vehicles;