すみません、また質問させていただきます。
TDBGridのある列に数値を「1,234,567」の様に表示させたいのですが出来なくて困っています。
ヘルプを見たところ、列のプロパティのNumberFormatで1,234,567の様に表示させるのは、
「Currency」と「Standard」があるようなのですが、
「Currency」だと\1,234,567になってしまい、
「Standard」だと1,234,567.00と小数点が2桁入ってしまいます。
どなた様か、ご存知の方いらっしゃいましたら、ご教授願います。
よろしくお願いします。
(VB6.0 SP5 Win2000)
TDBGridではなく、DataGridならばカスタム書式を使うことで対応できます。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200406/04060036.txt
TDBGridに、これと同様の機能がないかどうか、探してみては如何でしょう。
魔界の仮面弁士さん、解答ありがとうございます。
どうやら、プロパティで書式を設定できるようなのですが、
思うような書式にできなくて、困ってしまいました。
列のプロパティのEditMaskというところに書式を入力するようなのですが、
例えば、「1234567」←この数字の変化を見てみると、
EditMaskに
「\\#,##0」と入力すると、「\1,234」
「#,##0」と入力すると、「1,234」
という風になってしまいます。
私は初心者で、プログラムの勘がないので、他に色々試しては見たのですが、うまくいきませんでした。
どなた様か、これならと思う方法がありましたら、教えていただきたいです。
どうか、よろしくお願いします。
> 「\\#,##0」と入力すると、「\1,234」
> 「#,##0」と入力すると、「1,234」
では、「#,###,##0」だとどうでしょう?
当方には、TDBGridのヘルプも、TDBGridコントロールも無いので、
確認はできませんが…。
すみません…、だめでした。
私の説明不足でした。表示したいデータは沢山あって、
「1234567」だけでなくて「123」や「123456」など、桁数は様々です。
正確にいうと、100の位〜1億の位までです。
確かに「1,234,567」と表示されましたが、他の桁数が
「1,23 , 0」などとなってしまいました。
説明が不足してしまってご迷惑おかけいたしましたm(_ _)m
For文を使って繰り返し回数をその文字のLengthで取得
そして、3桁ずつsubstring関数で区切る(for文のループ回数*3)で
変数=substring関数で取得した文字+","+変数
↑
a=substring関数で取得した文字+","+aのような感じで
さらに、全て終了したらif文とbreak文でループを抜ける。
説明が上手く出来ません・・・
上の方法では無理ですか?
まだ、初心者なので・・・
つまりマグさんの言いたいのは…
数値型で必要な書式が無いなら文字列にしてしまえば?
…ってことだと思いますが、ボクもそう思います。
ヘルプに載ってる書式で対応できないのなら、他には
1.設定できる書式で我慢する
2.文化オリエント株式会社に書式を追加してくれるようお願いする
3.TDBGrid の使用をあきらめる
4.全てあきらめる
などがあるかと。
魔界の仮面弁士さん、マグさん、特攻隊長まるるうさん、
色々とご解答ありがとうございました。
特攻隊長まるるうさんの1で手を打つことにしました(^^;)
プログラミングソフトで出来ないこともあって、
ソフトでプログラムを作る上では、あきらめる時もあるのだなと、勉強させていただきました(ToT)
ちなみに、解決してないですが、解決にチェックしても良かったのでしょうか…?
>ちなみに、解決してないですが、解決にチェックしても良かったのでしょうか…?
出来ないことが分かるのも重要な情報の1つです。構わないと思います。
>プログラミングソフトで出来ないこともあって、
>ソフトでプログラムを作る上では、あきらめる時もあるのだなと、勉強させていただきました(ToT)
プログラミング言語の限界も確かにありますが、今回の場合は既存のコントロールの
話ですからねぇ。全てのユーザの全ての要求に答えられるコントロールは作れないです。
魚屋さんに行って『マンボウください』…って言っても…要求に答えられる魚屋さんと
答えられない魚屋さんがいるのは当然のことです。
1、マンボウに似た(味?見た目?)の魚で我慢するか
2、魚屋さんにマンボウを仕入れてくれるようにお願いするか
3、マンボウを売ってる魚屋さんを探すか
4、マンボウをあきらめるか
5、自分でマンボウを捕ってきて店に並べてもらって買うか
…そんなとこでしょ?ま、自分の漁のスキルも必要になってくる場合もありますが…。
今回の場合、他人様に作っていただいたコントロールを使うのですから仕様の
限界は仕方ないです。回答側の常連さんで TDBGrid を使っている方がいない
ようなので自分で調べていただくほかありません。一般的なVBのコントロールの
書式はダメだったですが、特殊な書式が用意されている可能性はまだあります。
(少なくともヒッキーさんは『書式が用意されてなかった』と明言されてません)
書式が用意されてなかったと仮定して、…もはや通常の設定では対応できないと
分かったとします。あとは工夫でカバーできるかどうかですね。
マグさんの案で実現できると思いますけど(…表示用のデータを文字列型で別に
用意すればどんな加工だって出来ますから)。ま、仕様上それほど重要でなければ
そこにつぎ込む労力がコストに見合わないこともありますから、あきらめる方が
正しい場合もあります。お好きなようにどうぞ。