• ベストアンサー

VB2005での質問です。

DataGridViewを使って、アクセスからデータベースを読み込んだんですが、昇順になりません。どうすればよろしいですか? 例えば、 NO. 1 2 3 5 6 とあって、新しく4を入れても6の下に来てしまいます。 自動に昇順にするにはどうすればよろしいですか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

フィールド名が 番号なら SELECT * FROM 名前 ORDER BY [番号] といった具合にします

teruteu_x
質問者

お礼

大変勉強になりました。 ありがとうございました。解決しました。

その他の回答 (2)

noname#221368
noname#221368
回答No.2

 以下はVS2005の使用を前提にしています。  #1さんの仰る事が基本ですが、Visual Studio 2005では、それを行うために、三つのインターフェイスが用意されています。 (1) DataSet→BindingSource→DataGridViewの場合  ・DataSet Degignerの中のTableAdapterの構成を開き、ウィザードに従って、No.フィールドに昇順を指定する。  ・またはBindingSourceのSortプロパティーに、"No."を指定する。昇順,降順の指定書式はSQLと同じです。 (2) DataGridViewで並べ替える場合  ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。  余談ですが、DataSetって壊れやすいですよね?

teruteu_x
質問者

お礼

(2) DataGridViewで並べ替える場合  ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。 になってました。駄目でした(T_T)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

データベースは一般的にレコード順の保障はありません データを取得するSQLで順序を決めるようにします SELECT * FROM TABLE ORDER BY フィールド名 といった具合に『ORDER BY句』を使って希望の順序になるようにします

teruteu_x
質問者

お礼

'▼データ取得 Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\名前\データ.mdb") Dim SQLCm As OleDbCommand = Cn.CreateCommand Adapter = New OleDbDataAdapter(SQLCm) Dim Builder As New OleDbCommandBuilder(Adapter) Dim Table As New DataTable SQLCm.CommandText = "SELECT * FROM 名前" Adapter.Fill(Table) '値の表示 DataGridView1.DataSource = Table '後処理 Table.Dispose() と作ったのですが、何処に『ORDER BY句』を入れればよろしいでしょうか? "SELECT * FROM 名前"のところに入れても Adapter.Fill(Table)のところでエラーが出てしまいます。 データベース初心者で申し訳ありません。 教えてください。

関連するQ&A

専門家に質問してみよう