Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2016)
#,##0 で小数点以下を自動表示するには?
投稿日時: 17/04/12 08:21:46
投稿者: きき

テキストボックスの書式を #,##0 とすると、
小数点以下が表示されませんが、
 
1234 ==> 1,234
1234.56 ==> 1,234.56
 
のように表示させるにはどのように設定すればいいでしょうか?
テキストボックスは入力用なので編集可能です。
 
よろしくお願いします。

回答
投稿日時: 17/04/12 09:41:40
投稿者: AccessKid

IIf([テキストボックス名]-[テキストボックス名]\1>0,"#,###.##","#,###")
 
では?

投稿日時: 17/04/12 09:53:01
投稿者: きき

引用:
IIf([テキストボックス名]-[テキストボックス名]\1>0,"#,###.##","#,###")

これは、書式ですか?

回答
投稿日時: 17/04/12 13:50:21
投稿者: hatena
投稿者のウェブサイトに移動

書式プロパティの設定では無理かな。
 
テキストボックスのコントロールソースに下記のように設定してください。
 
=Format([フィールド名],IIf(Int([フィールド名])=[フィールド名],"#,##0","#,##0.##"))
 
 
ただし、結果はテキスト型になりますので、演算には使えません。
または、文字配置を「右」に設定してください。

回答
投稿日時: 17/04/12 14:00:24
投稿者: sk

引用:
テキストボックスの書式を #,##0 とすると、
小数点以下が表示されませんが、
  
1234 ==> 1,234
1234.56 ==> 1,234.56
  
のように表示させるにはどのように設定すればいいでしょうか?
テキストボックスは入力用なので編集可能です。

結論から言えば、解決策はありません。
 
・1000 単位の区切り記号(,)は原則的に整数部分に対して
 適用されるため、別途「小数点以下の桁数に関する書式」を
 明示的に指定しない限り、整数部分のみが表示されることになる。
 
・[書式]プロパティの設定値が空白、または定義済み書式「数値」である場合、
 テキストボックスの値が整数値ならば小数点以下の値は表示されず、
 小数点以下の端数を含む場合は小数点(.)と端数部分の値が表示されるが、
 1000 単位の区切り記号(,)は表示されない。
 
・[書式]プロパティの設定値が定義済み書式「標準」である場合、
 整数部分については 1000 単位の区切り記号(,)が表示され、
 小数点以下の値の表示書式については
 [小数点以下表示桁数]プロパティの設定に従う。
 [小数点以下表示桁数]プロパティの設定値が「自動」である場合は
 Windows の地域の設定に従う。いずれにせよ、
 小数点以下の表示桁数は常に固定されることになる。
 
・[書式]プロパティに数値型/通貨型のカスタム書式を設定する場合、
 セミコロン (;) で区切った 1 〜 4 つのセクションに
 「正の数値の書式」,「負の数値の書式」,「 0 の書式」,
 「 Null の値の書式」を指定することが出来るが、
 「小数点以下の端数を含む場合の書式」及び
 「小数点以下の端数を含まない場合の書式」に当たる
 セクションはないため、[書式]プロパティの設定上において
 その両者を区別することは出来ない。
 
・演算テキストボックスの[コントロールソース]プロパティに
 そういう結果を返す式を設定すれば出力されるにはされるが、
 そのテキストボックスの値をユーザーが編集することは出来ない。

回答
投稿日時: 17/04/12 14:37:34
投稿者: hatena
投稿者のウェブサイトに移動

引用:
テキストボックスは入力用なので編集可能です。

 
表示用のテキストポックスと編集用のテキストボックスを2つ用意することになりますね。
 
表示用のテキストボックスは私の前回の回答の設定で。
 
編集用は、単純にコントロールソースにフィールド名を設定する。
 
編集用テキストボックスの上に、表示用テキストボックスを重ねて配置する。
 
表示用テキストボックスの「タブストップ」は「いいえ」に設定、フォーカス取得時のイベントプロシージャを下記のように記述。
 
Private Sub 表示用テキストボックス_Enter()
    Me.編集用テキストボックス.SetFocus
End Sub

 
これで、一つのテキストボックスのように見えます。

回答
投稿日時: 17/04/13 11:09:42
投稿者: Suzu

こんにちは。
 
すみません。手元Accessがなく確認できませんが
 
Excelの場合、条件付き書式にて対応しています。
 
 
Accessにしたらこんな感じでしょうか。
 

順位    式                                              書式
1       =0                                              ;;0_._0
2       =Forms![Form]![TXT]=INT(Forms![Form]![TXT])     #,##0_._0;-#,##0_._0
3       =Forms![Form]![TXT]<>INT(Forms![Form]![TXT])    #,##0.0;-#,##0.0

回答
投稿日時: 17/04/13 13:05:14
投稿者: sk

引用:
Accessにしたらこんな感じでしょうか。
  
 
順位    式                                              書式
1       =0                                              ;;0_._0
2       =Forms![Form]![TXT]=INT(Forms![Form]![TXT])     #,##0_._0;-#,##0_._0
3       =Forms![Form]![TXT]<>INT(Forms![Form]![TXT])    #,##0.0;-#,##0.0

Access のテキストボックスの条件付き書式で設定できるのは、
[太字],[斜体],[下線],[背景色],[フォントの色],[有効化]の
6 つの書式項目です。
 
「値の表示形式」の設定は行なえません。

回答
投稿日時: 17/04/13 16:05:15
投稿者: Suzu

sk さんの引用:
「値の表示形式」の設定は行なえません。

 
すみません。失礼しました。

投稿日時: 17/04/20 08:49:01
投稿者: きき

遅くなってすみません。
おかげさまで、条件付き書式でうまくいきました。
ありがとうございました。