

上記内容で四苦八苦しているVB初心者です。
Microsoft Visual Studio / ActiveReportで帳票を作成しています。
DBからの値が、小数点以下ありの場合(例:1.7)の時はそのまま表示し、小数点以下が0の場合(例:1.0)の時、整数部分のみを表示させたいのです。
質問の『値』ですが、今回の値は小数点第一位までです。
#.0 の時 → # と表示。
#.1~9 の時 → そのまま表示。
としたいのです。
稼働環境はWinXP、Win7です。
ちなみにイメージしていただくために・・・
既に別の条件で、
『If H_数量.Text = "0.00" Then
H_数量.Text = ""
H_単価.Text = ""
End If 』
というコードを書いているのですが、この、『H_数量』が問題の値部分です。
H_数量 の値が小数点以下ありの時、0の時、
での条件式となります。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
>H_数量.Text = Format(H_数量.Text, "#,##0")
>は、全行 #,##0 と表示されてしまいました。
こちらは、.NETじゃないので確認はできませんが、
H_数量.Text = Format(Val(H_数量.Text), "#,##0")
のようにValを付けてみてください。
Val関数は、文字列を数値に変換する関数です。
Format関数は、本来は数値を文字列に変換する関数です。
VBは数値が入っている文字列も数値と解釈されることがあるため、Valを使わなくても大丈夫でしたが、
.NETではそれがダメなようです。
ただ、他の言語にしてみればそれが普通なんですけどね。
nag0720様!
できました!!!
ありがとうございます(≧▽≦)~~~!!!
これで少数桁ありなし用で2枚用意していた帳票が1枚で済ませられます。
また、今回質問したことで色々勉強になりました。
本当にありがとうございました☆☆☆
それから、環境も書かずに質問して皆様にお手間を取らせてしまったこと、
この場をお借りしてお詫びいたします。
初心者ながら、そういう基本的なところは今後気をつけたいと思いますm(__)m
No.3
- 回答日時:
H_数量.Text = Format(H_数量.Text, "0.0")
If Right(H_数量.Text, 2) = ".0" Then
H_数量.Text = Format(H_数量.Text, "0")
End If
ではどうですか。
ありがとうございます。
結果としては、ダメでした。
H_数量 の欄が全て『0』となってしまいます。
環境は.NET なのですが、この環境ではFormat関数をこのように使うことは出来ないのでしょうか・・
単純に、
H_数量.Text = Format(H_数量.Text, "0")
を試すと、全行 0
H_数量.Text = Format(H_数量.Text, "#,##0")
は、全行 #,##0 と表示されてしまいました。
引き続きアドバイスお待ちしております。
No.2
- 回答日時:
下記ではダメでしょうか
---
Format(H_数量,"0.#")
ありがとうございます。
整数部分のみ表示したいので、Format(H_数量,"0.#")ではなく、
● If H_数量.Text = Fix(H_数量.Text) Then
H_数量.Text = Format(H_数量, "0")
End If
● If H_数量.Text = Fix(H_数量.Text) Then
H_数量.Text = Format(H_数量, "#")
End If
としてみましたが、どちらもダメでした。
Fix(▲▲) 、 Format(◆◆)
関数の後にくる▲▲と◆◆がダメなのでしょうか?
H_数量 は、帳票上のTextBox で Datafield = 数量
「数量」はDBのフィールド名です。
例にあげたコード
If H_数量.Text = "0.00" Then
H_数量.Text = ""
H_単価.Text = ""
End If 』
(H_数量が0.00の時、H_数量欄とH_単価欄は空欄にする)
はちゃんと動いているのですが。。
No.1
- 回答日時:
元の値の小数部を切り捨てた値と元の値を比較して、同一の場合は小数部0と判定すれば
良いと思います。
例.If H_数量.Text = FIX(H_数量.Text ) THEN
という感じです。
さっそくありがとうございます。
ただ、私の力ではコードが完成しません(><)
If H_数量.Text = FIX(H_数量.Text ) THEN
H_数量.Text = Fix(H_数量.Text)
End If
でしょうか?
しかしこれでは帳票が表示できませんでした。
THEN のあと、 H_数量 の整数部分のみ表示 するコードはどう書けば良いでしょうか?
初心者過ぎてすみません!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
VB初心者。小数点以下の表示でつまづいています(2
Visual Basic(VBA)
-
文字列で小数点以下の0を削除したい
Visual Basic(VBA)
-
4
実数の整数部,小数部の取得
Visual Basic(VBA)
-
5
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
VB.net Double と Decimal の違い?
Visual Basic(VBA)
-
8
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
9
VBでの入力値制限について
Visual Basic(VBA)
-
10
VBでの簡易電卓の作成(減算方法)で困っています。
Visual Basic(VBA)
-
11
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
12
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
13
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
14
VB6.0での小数点の扱いについて
Visual Basic(VBA)
-
15
csvファイルのデータの一部を取り出したい
Visual Basic(VBA)
-
16
VBでReplace
Visual Basic(VBA)
-
17
VB.NETのテキストボックスの書式指定
Visual Basic(VBA)
-
18
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
19
VB.NETで1→A、2→B、26→Z、27→AAの変換をしたい
Visual Basic(VBA)
-
20
Functionで戻り値を複数返す方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ACCESS VBA 画像ファ...
-
5
マクロ 特定のセル値のみクリ...
-
6
[VBA]選択範囲の下から上に処理...
-
7
VB.NETでコンボボックスの1行目...
-
8
シーケンサで最小値を保持する
-
9
値を返さないコード パス
-
10
IP Address Controlから値を取...
-
11
0から86400秒までの下2桁を取り...
-
12
一番後ろのスラッシュ以降を削...
-
13
VB初心者。小数点以下の表示で...
-
14
テキストボックスの設定。
-
15
PL/SQLでのTO_DATEの時間取得に...
-
16
ダブルクリックをした順番に数...
-
17
VB.netでRGB関数を使うには
-
18
OpenCVにおいてのYCrCb値の求め方
-
19
ASPの変数の値をJAVA Script内...
-
20
プロジェクト間の値の渡し方
おすすめ情報
公式facebook
公式twitter