0

1文字または2文字のテキスト列があり、0から99までの数字のみが含まれています。

1桁の文字だけの場合、プレフィックス0で表示するためにどの(テキスト)形式を使用しますか?これは、「8」が「08」として表示され、23は変更されない「23」であることを意味します。

フィールドがテキストではなく数値の場合、これを行う方法を知っています。私がする必要があるのは、この数値列のフォーマットフィールドに00を入力することだけです。フィールドがテキストの場合も同じようにします。ありがとう。

4

3 に答える 3

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

このような単純なことにはVBAは必要ありません。
フィールドが数値の場合は、「00」のような形式を使用できます。文字列で、純粋な形式を使用して、私は方法がないのではないかと心配しています。

于 2013-03-17T16:26:09.640 に答える
1

TextBox値を数値に変換する場合は、のテキスト形式の仕様を使用できます。書き込みのControlSourceTextBox

=CLng(fieldName)

あなたのフィールドがそうなる可能性がある場合、Nullこれはエラーを生成し、あなたはこれをしなければならないでしょう:

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

NzVBAは常に。の3つの引数すべてを評価するため、これは引き続き必要ですIIf

または、フィールドがの場合に「00」を表示する場合はNull、次のようにします。

=CLng(Nz(fieldName))

TextBoxやその他のコントロールでこのような式を使用する場合は、コントロールの名前がソース列の名前と異なることを確認してください。そうしないと、エラーが発生する無限再帰が発生します。たとえば、列名が「MyColumn」の場合、TextBoxに「txtMyColumn」のような名前を付けます。

于 2013-03-17T16:31:12.373 に答える
0

ここでの同様の質問から、次の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)

参照:http ://support.microsoft.com/kb/210573

于 2013-03-17T16:10:24.090 に答える