1文字または2文字のテキスト列があり、0から99までの数字のみが含まれています。
1桁の文字だけの場合、プレフィックス0で表示するためにどの(テキスト)形式を使用しますか?これは、「8」が「08」として表示され、23は変更されない「23」であることを意味します。
フィールドがテキストではなく数値の場合、これを行う方法を知っています。私がする必要があるのは、この数値列のフォーマットフィールドに00を入力することだけです。フィールドがテキストの場合も同じようにします。ありがとう。
1文字または2文字のテキスト列があり、0から99までの数字のみが含まれています。
1桁の文字だけの場合、プレフィックス0で表示するためにどの(テキスト)形式を使用しますか?これは、「8」が「08」として表示され、23は変更されない「23」であることを意味します。
フィールドがテキストではなく数値の場合、これを行う方法を知っています。私がする必要があるのは、この数値列のフォーマットフィールドに00を入力することだけです。フィールドがテキストの場合も同じようにします。ありがとう。
=Right("00" & someString,2)
このような単純なことにはVBAは必要ありません。
フィールドが数値の場合は、「00」のような形式を使用できます。文字列で、純粋な形式を使用して、私は方法がないのではないかと心配しています。
TextBox
値を数値に変換する場合は、のテキスト形式の仕様を使用できます。書き込みのControlSource
:TextBox
=CLng(fieldName)
あなたのフィールドがそうなる可能性がある場合、Null
これはエラーを生成し、あなたはこれをしなければならないでしょう:
=IIf(IsNull(fieldName), Null, CLng(Nz(fieldName)))
Nz
VBAは常に。の3つの引数すべてを評価するため、これは引き続き必要ですIIf
。
または、フィールドがの場合に「00」を表示する場合はNull
、次のようにします。
=CLng(Nz(fieldName))
TextBoxやその他のコントロールでこのような式を使用する場合は、コントロールの名前がソース列の名前と異なることを確認してください。そうしないと、エラーが発生する無限再帰が発生します。たとえば、列名が「MyColumn」の場合、TextBoxに「txtMyColumn」のような名前を付けます。
ここでの同様の質問から、次の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)