• ベストアンサー

テキストボックスの書式について(Access)

Access2003の帳票フォーム上にあるテキストボックスで単価を表示させているのですが、単価が小数点1位まであるものと整数のみのものがあります。これを次のように単価のテキストボックスに表示させたいのですが 例1)単価:100→\100 (\100.0では無い) 例2)単価:99.4→\99.4 <説明> データが整数の場合は整数表示で先頭に¥マークを、データが小数を含む場合は小数を含めた表示で先頭に¥マークを付ける。 どの様な方法があるでしょうか。条件付き書式などが該当するように思えますが、インターネットで調べてもよく分かりませんでした。 VBAのサンプルコードなどご呈示いただければ幸いです。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

書式では対処できません 小数点下1位が0の場合に非表示にすることはできますが その場合でも小数点は残ります レポートなら書式の異なるテキストボックスを2つ重ね 値によって表示するほうを変えるなんて手もありますが フォームではその手も使えません 無理やるやるならそういう文字列をこしらえて表示することになりますが それじゃ入力や更新ができなくなりますから 本末転倒ですね 小数点は残るけれど数字は表示されないあたりで手を打つしかないのでは \#,###.#

omega_01
質問者

補足

ご回答ありがとうございます。この手の処理はそれなりにありそうなので何とかなるかと思っていたのですが、思いの外難しいようですね。 単純に見栄えの問題ですので、色々と試してみてどうしても無理であれば妥協しようと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

テキストボックスが非連結の状態で小数第1位までの表示とします。 テキストボックスの名前はtxt_単価でフィールド名は単価とします。 テキストボックスのフォーカス取得後のイベントです。 Private Sub txt_単価_Enter() Dim Amari As Double Amari = ([単価] * 10) Mod 10 If Amari = 0 Then txt_単価 = Format([単価], "\\#,##0") Else txt_単価 = Format([単価], "\\#,##0.0") End If End Sub

omega_01
質問者

補足

ご回答ありがとうございます。 前提条件が説明不足な点があり申し訳ないのですが、単価のテキストボックスのコントロールソースが存在しております。 この為上記のイベント処理だけでは対応出来ないかもしれません。但し、テキストボックスの書式を設定するのではなくテキストボックスに入力する値のフォーマットを設定すると言う考え方を利用すれば上手く処理できるかもしれません。もう少し試行錯誤してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • レポートのテキストボックスでこんなのを表示したいんですが

    Access97にてレポートを作成しています。 レポート内のテキストボックスに単純に数値を表示したいのですが、 以下の要件を満たしたいんです。 ・1000以上の数値ならカンマで区切る ・小数点以下の数値がない場合は整数部分だけ表示 ・小数点以下の数値がある場合は小数点以下の数字を桁に応じて表示 例 「945」→「945」 「1283」→「1,283」 「10.42」→「10.42」 「8.2」→「8.2」 テキストボックスのプロパティ「書式」を「数値」、 かつ「小数点以下桁数」を「自動」にしても、なぜか全ての数値が 小数点以下2桁まで表示されてしまいます。 お知恵をおかしください。 よろしくお願いします。

  • Accessフォームのテキストボックス表示方法

    Access2002です。フォームにテキストボックスを作りそこに温度を表示したいのです。 テーブルのデーター型は数値型、 フイールドサイズは単精度浮動小数点型 書式は数値 数値は小数点以下表示桁数1にしてあります。 テキストボックスのプロパテイの書式に##.#Cと書くと何故か最初の#が消えて#.#Cになってしまい例えば0.9Cが最初の0が抜けて.9Cと表示されてしまいます。 書式を数値、固定、標準にすると今度はCが書けません。尚小数点以下表示桁数は1にしてあります。 要は例えば0.9を0.9Cと表示したいのです。 宜しくお願いします。

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • テキストボックスの処理について教えて下さい。

    テキストボックスの処理について教えて下さい。 txtTanka1.Text というテキストボックスがありまして、単価を入れるところです。 単価には小数1位までのものがあります。 でも表示をそろえるために、すべて小数1位まで表示したいと思っています。 「3.0」と入力すると→表示は「3.0」 「5.5」と入力すると→表示は「5.5」 「4」と入力しても→表示は「4.0」 にしたいと思って下のコードを書きましたが、思うように動きません。 doubTanka = 0 doubTanka = CDbl(txtTanka1.Text) txtTanka1.Text = CStr(Format(doubTanka, "#,###.#")) どなたか、原因と対処方法を教えて下さい。 よろしくお願いします。 ちなみにWindows7とVB2008 です。

  • ACCESS 書式設定

    書式設定で0.0とすれば、整数でも小数点を表示できますが、 例 1→1.0 空白が0と表示されてしまいます。 空白を0と表示せずに1を1.0などと表示を変えられないでしょうか?

  • ユーザーフォーム内のテキストボックス内の書式設定

    A1セルに12.345と入力してあり、書式は「数値」で小数点以下の桁数2にしてあり、 「12.35」と表示されます。 VBAを起動して、ユーザーフォームを挿入し、 テキストボックスを作成し、 TextBox1の「ControlSource」にA1と入力すると TextBox1には「12.345」と表示されます。 エクセルのA1と同じ様に TextBox1も「12.35」と表示したいのですがどうすればいいのでしょうか? エクセル2003です。 よろしくお願い致します。

  • access テキストボックス自動高さ調整

    帳票フォームにてデータを表示しています データの中でメモ型を配置しており、長い文章が書くときもあれば、短く済むときもあります 長い文章に合わせてテキストボックスの高さを大きめにとっておけばよいのですが、そうするとスクロールするのが大変なのと見栄えが悪い為、文字数に合わせて高さが変わればいいなと思いネットで検索してみました http://www.accessclub.jp/bbs3/0146/superbeg50129.html 結論的にはここに書いてある事をやりたいのですが。。。 VBAの文章をどこに書くかまでは書いておらず困っております^^; どなたかアドバイスをいただけないでしょうか?

  • Access テキストボックスのifについて

    テキストボックスの条件付き書式で以下の条件をつけたいですが if分が間違っているのかうまくできません。 例:テキストボックス内が空白の場合は"なし"と表示させたい テキストボックス名は「Center_Printer」 =IIf(IsNull([Center_Printer]),"なし")では「指定した式の構文がただしくありません」となります。

  • [Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには

    Accessにおいて。 帳票フォームの"詳細"に非連結のコントロール(例:テキストボックス)を配置し、それぞれ別々の値を持たせることは可能なのでしょうか? 例えば。 VBAにおいて、カレントレコードのAという値とBという値を計算し、その値を非連結のテキストボックスに挿入したとします。 単票フォームであれば、問題なくテキストボックスには計算後の値が表示されるわけですが…… 帳票フォームの場合では、"規定値"に計算式を入れたときと同様、先頭の値と同じものが連続するテキストボックスに表示されてしまいます。 これを回避し、計算後のデータを連続するテキストボックスにそれぞれの値として表示させるには、どのようにすればよいのでしょうか? もちろん、連結させたコントロールを使用すれば、問題はないのですが…… 状況によっては、これが行えた方が便利かと思い、質問させていただきます。 「帳票フォームでは不可能である」といった回答でもかまいません。 どうぞよろしくお願いいたします。

  • アクセス(ACCESS)のリストボックスについて

    アクセスでフォームにテキストボックスとリストボックスを配置して、 テキストボックスに入力した文字列により、リストボックスに表示される データを変えたいのですが(フィルタをかけるというのでしょうか??) そこで、vbaを用い、リストボックスのプロパティの値集合ソースに SELECT * FROM aaa where aaa.bbb like "*あ*"; 'あ と言う文字のあいまい検索のつもり ”あ”はテキストボックス    に入力されている。 と入るような事を考えたのですが、ここで、aaaの部分がテーブルを基にした 場合は、該当するデータすべてが表示されますが、クエリーを基にすると 先頭のデータしか表示しないのです。 たぶん、素人の考えなのでしょうが、どうしてそうなるのかが分かりません。 教えていただけないでしょうか? できたら、クエリーを基にしても、該当データが表示できる方法も 教えてください。お願いします。 VBAは(?)かなりの初心者です。上記の方法も本に書いてあった物を やっと流用しました。猿にも解るくらいでお願いします。 ちなみに、アクセスは2000を使用しています。

このQ&Aのポイント
  • ドラムユニットを交換したが、ブラザーレザープリンターHL-3170CDW では赤の印刷が半分しかされない問題に遭遇しました。インクを交換しても同様の症状が続き、古いドラムに戻したところ正常な出力が得られました。交換してもらえるのでしょうか?
  • ブラザーレザープリンターHL-3170CDW のドラムユニット交換後、赤の印刷が半分しかされない問題に直面しました。インク交換を試みましたが、問題は解消されませんでした。古いドラムに戻したところ、正常な出力が得られました。不良品の可能性があるので、交換してもらうことは可能でしょうか?
  • ブラザーレザープリンターHL-3170CDW のドラムユニット交換後、赤の印刷が半分しかされない問題に遭遇しました。インクを交換しても同じ症状が続き、古いドラムに戻すと正常に出力されました。新しいドラムが不良だった可能性があります。不良品の場合は交換してもらえるのでしょうか?
回答を見る

専門家に質問してみよう