DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コンボボックスの昇順

環境/言語:[Vista VB2008]
分類:[VB6以前]

お久しぶりです。
その節は大変お世話になりました。
今回も教えていただきたいことがあります。

今回はコンボボックスの昇順についてです。

コンボボックスをデータベースにつないでいるのですが、
コンボボックスに表示されるものが順番通りではないのです。
数字が表示されているのですが、それが適当に並びます。
データテーブルにはちゃんと昇順で並ぶのですが、作成中のところでは適当に並びます。

どうすればちゃんと昇順に並ぶのでしょうか?

いつも教えていただいてばかりで大変恐縮なのですが、よろしくお願いします。
■No22712に返信(やますけさんの記事)
> 環境/言語:[Vista VB2008] 
> 分類:[VB6以前] 
VB6 なのでしょうか? VB2008 なのでしょうか?

> コンボボックスをデータベースにつないでいるのですが、
DB から取得する際に、SQL にて ORDER BY を指定していますか?

> 数字が表示されているのですが、それが適当に並びます。
その「適当」というのは、
 ・毎回違う並び順になってしまう
 ・期待しない並び順ではあるが、再現性はある
のいずれでしょうか。

> 作成中のところでは適当に並びます。
どのように作成していますか?

.NETの場合、DataSource 指定か Items.Add 指定かによって異なりますが、
元データの並び順さえ適切であれば、正しく昇順となるはずですよ。

VB6 の場合は、Sorted = Falseにして、適切な順番で AddItem してください。
(Sorted プロパティは、数値データのソートには向かないため)
お早い返信ありがとうございます。


> VB6 なのでしょうか? VB2008 なのでしょうか?
VB2008 Express Editionで開発しています。
なのでVB2008です。

> DB から取得する際に、SQL にて ORDER BY を指定していますか?
指定していません。

> その「適当」というのは、
>  ・毎回違う並び順になってしまう
>  ・期待しない並び順ではあるが、再現性はある
> のいずれでしょうか。
後者の 『期待しない並び順ではあるが、再現性はある』です。

> どのように作成していますか?
初心者なので核心を得ていない回答かと思いますが。
コンボボックスをデータソースにつなぎ、マスタで追加するとそのコンボボックスの項目が増えると言うような感じです。
■No22714に返信(やますけさんの記事)
>>DB から取得する際に、SQL にて ORDER BY を指定していますか?
> 指定していません。
指定してください。指定しないのであれば、DB から取得した後に、
(DataView 等を使って)ソートを行う必要があります。
ORDER BY 無しで取得した場合の並び順は保証されませんので。

> コンボボックスをデータソースにつなぎ、
どのようにして繋いでいますか?
  • 題名: Re[4]: コンボボックスの昇順
  • 著者: やますけ
  • 日時: 2008/08/15 14:22:53
  • ID: 22716
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
> 指定してください。指定しないのであれば、DB から取得した後に、
> (DataView 等を使って)ソートを行う必要があります。
> ORDER BY 無しで取得した場合の並び順は保証されませんので。
わかりました。
ありがとうございます。


> どのようにして繋いでいますか?
コンボボックスのプロパティからデータソースにマスタを繋ぎ、
ディスプレイメンバからコンボボックスに表示させるものを選択しています。

DOBON.NET | プログラミング道 | プログラミング掲示板