2013-03-17 96 views
0

我有一個文本列,它是1或2個字符只包含從0到99如何在Microsoft Access中爲文本模式指定自定義格式?

什麼(文本)格式的數字做我用一個0字頭,以顯示它時,它只有一個數字字符? 這意味着'8'顯示爲'08',而23保持不變'23'。

我知道如何做到這一點當字段是數字而不是文字。我需要做的就是把00放在這個數字列的格式字段中。現在我想在字段爲文本時做同樣的事情。謝謝。

回答

3
=Right("00" & someString,2) 

沒有VBA一件簡單的事情。
如果該字段是數字,則可以使用類似「00」的格式。用一個字符串,使用純粹的格式,恐怕沒辦法。

0

從一個類似的問題here,創建以下VBA函數:

Function Lpad (MyValue as String, MyPadCharacter as String, _ 
      MyPaddedLength as Integer) 
    Lpad = string(MyPaddedLength - Len(MyValue),MyPadCharacter) _ 
      & MyValue 
End Function 

要測試此函數,鍵入在立即窗口下面的行,然後按ENTER鍵:

?Lpad("123B","0",6) 

REF :需要這樣http://support.microsoft.com/kb/210573

+0

我投了票,因爲這是另一種方式來做我想做的事。但是,我的問題是如何使用文本格式規範來做到這一點。謝謝。 – user776676 2013-03-17 16:18:39

+0

夠公平的。當然,如果這是一個報告,那麼您總是可以使用其中一種建議的技術(來自@iDevlop的技術尤其優雅)來輸出底層查詢中的格式化文本。這樣你就不必在報告中擺弄格式規範。 – 2013-03-17 19:17:14

1

如果將值轉換爲數字值,則可以使用TextBox的文本格式規範。在TextBox寫的ControlSource

=CLng(fieldName) 

如果你的領域可以Null這將產生一個錯誤,你將不得不這樣做:

=IIf(IsNull(fieldName), Null, CLng(Nz(fieldName))) 

Nz仍然是必需的,VBA始終評估IIf的所有三個參數。

或者,如果你想顯示「00」,如果該字段爲Null,只要做到這一點:

=CLng(Nz(fieldName)) 

當您使用文本框或其他控件這樣的表達,確保名該控件與源列的名稱不同;否則你會得到一個產生錯誤的無限遞歸。例如。如果列名是「MyColumn」,則給TextBox一個名稱,如「txtMyColumn」。

+0

有效,除非他想出於某種原因保留表達式作爲字符串。 – 2013-03-17 16:32:36