2013-06-28 34 views
1

我們目前正在使用Access 2003.我有一個汽車維修日誌,其中有一個車輛號碼的文本字段。該領域需要是文本,因爲當車輛退役時,它將具有R。他們希望該字段是一個四位數的數字,並帶有前導零。因此,車輛22將顯示在表格中並且報告爲0022,並且在退役時將是R0022。我試圖將字段的格式更改爲「0000」和「0000」#但這些都不會顯示前導零。訪問2003文本顯示導致零

+3

你只是把'22'放到文本字段中,還是你輸入了整個'0022'?文本字段*應該*僅保留前導零。我也不相信改變'Format'屬性會對文本字段產生任何影響。 –

回答

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;