我有一個文本列,它是1或2個字符只包含從0到99如何在Microsoft Access中爲文本模式指定自定義格式?
什麼(文本)格式的數字做我用一個0字頭,以顯示它時,它只有一個數字字符? 這意味着'8'顯示爲'08',而23保持不變'23'。
我知道如何做到這一點當字段是數字而不是文字。我需要做的就是把00放在這個數字列的格式字段中。現在我想在字段爲文本時做同樣的事情。謝謝。
我有一個文本列,它是1或2個字符只包含從0到99如何在Microsoft Access中爲文本模式指定自定義格式?
什麼(文本)格式的數字做我用一個0字頭,以顯示它時,它只有一個數字字符? 這意味着'8'顯示爲'08',而23保持不變'23'。
我知道如何做到這一點當字段是數字而不是文字。我需要做的就是把00放在這個數字列的格式字段中。現在我想在字段爲文本時做同樣的事情。謝謝。
=Right("00" & someString,2)
沒有VBA一件簡單的事情。
如果該字段是數字,則可以使用類似「00」的格式。用一個字符串,使用純粹的格式,恐怕沒辦法。
從一個類似的問題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)
如果將值轉換爲數字值,則可以使用TextBox
的文本格式規範。在TextBox
寫的ControlSource
:
=CLng(fieldName)
如果你的領域可以Null
這將產生一個錯誤,你將不得不這樣做:
=IIf(IsNull(fieldName), Null, CLng(Nz(fieldName)))
的Nz
仍然是必需的,VBA始終評估IIf
的所有三個參數。
或者,如果你想顯示「00」,如果該字段爲Null
,只要做到這一點:
=CLng(Nz(fieldName))
當您使用文本框或其他控件這樣的表達,確保名該控件與源列的名稱不同;否則你會得到一個產生錯誤的無限遞歸。例如。如果列名是「MyColumn」,則給TextBox一個名稱,如「txtMyColumn」。
有效,除非他想出於某種原因保留表達式作爲字符串。 – 2013-03-17 16:32:36
我投了票,因爲這是另一種方式來做我想做的事。但是,我的問題是如何使用文本格式規範來做到這一點。謝謝。 – user776676 2013-03-17 16:18:39
夠公平的。當然,如果這是一個報告,那麼您總是可以使用其中一種建議的技術(來自@iDevlop的技術尤其優雅)來輸出底層查詢中的格式化文本。這樣你就不必在報告中擺弄格式規範。 – 2013-03-17 19:17:14