• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキスト型 書式を「#,##0」にするには?)

テキスト型書式を「#,##0」にする方法

このQ&Aのポイント
  • テキスト型の金額フィールドを「#,##0」の書式で表示する方法を教えてください。
  • フォームのテキストボックスにリンクされているテキスト型の金額フィールドを、「#,##0」の書式で表示させるにはどうすればいいでしょうか?
  • コントロールソースを「=IIf(IsNumeric([金額])=True,Format([金額],"#,##0"), [金額] )」に設定しても表示されず、「無効なコントロールソースです」と表示されます。対策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

まず・・関数の使い方から見てみましょうね。 Format関数は 「第1引数の“数値”を受けて、第2引数で指定したによる文字列」 に変換する関数です。 「第1引数に“文字列”を与えてしまうと、空白で返す」関数ですので、 > エラーにもならないけど、何も表示されません。 と言う状態に陥ります。 つまり、このやり方を採用するなら、Val関数(文字列⇒数値に変換)を併用して    =IIf(IsNumeric([金額])=True,Format(Val([金額]),"#,##0"),[金額]) としてやる必要があります。 ですが、このやり方だと「フォームによる修正」が出来ません。 これを実現しようと思った時に簡単なやり方として、 VBAを併用して 「更新されたら、数値化文字列か判断し、数値なら書式を付ける」 という方法が一つ挙げられます。 つまり、コントロースソースを[金額]にしたテキストボックスを準備し、 これの「更新後処理」に Private Sub テキスト0_AfterUpdate()    ' テキストボックスの名前は任意     If IsNumeric([金額]) = True Then         [金額] = Format(Val([金額]), "#,##0")     End If End Sub こんな感じのコードを書いてやるとある程度上手くいくのではないかと思います。 お試しくださいませ。

CRULNGOTVZXMP
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

  • yaasan
  • ベストアンサー率22% (2725/12280)
回答No.1

フィールドを数値型もしくは通貨型にしてみては? テキストのセルは必ずテキストになるのですから、計算がない限り、大丈夫と思われます。 手元にアクセスがないので、検証できてませんが参考まで。

CRULNGOTVZXMP
質問者

お礼

回答ありがとうございました。

関連するQ&A