tagCANDY CGI VBレスキュー(花ちゃん) - データグリッドに表示されたデータをソートする(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
データグリッドに表示されたデータをソートする(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

データグリッドに表示されたデータをソートする(VB6.0) [No.132の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2007/09/16 11:11
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[データベース][グリッド関係][]                                     *
* キーワード:データグリッド,並べ替え,ソート,,,                                   *
***********************************************************************************

元質問:データグリッドのソート - こう  2007/05/07-15:20 No.9098
VB6.0にてデータをデータグリッドに表示させています。VB2003やVB2005のようにデータグリッドに表示されたデータをソートすることは出来ないのでしょうか?SQLは使用しないで実現したいです。

-----------------------------------------------------------------------------------
Re: データグリッドのソート - 魔界の仮面弁士  2007/05/07-15:40 No.9100
-----------------------------------------------------------------------------------
> 表示されたデータをソートすることは出来ないのでしょうか?

DataGrid に表示させている Recordset オブジェクトの、Sort プロパティを使うとか。

=== 簡易コード ===

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
    rs.Sort = DataGrid1.Columns(ColIndex).DataField
End Sub

=== 少しだけ汎用化 ===

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
    Call SortDataGridByColumn(DataGrid1, ColIndex)
End Sub

Public Sub SortDataGridByColumn(ByVal dg As MSDataGridLib.DataGrid, ByVal ColIndex As Integer)
    Dim DataSource As Object
    Set DataSource = dg.DataSource
    Dim RS As ADODB.Recordset
    If DataSource Is Nothing Then
        '未設定
        Set RS = Nothing
    ElseIf TypeOf DataSource Is ADODB.Recordset Then
        'Recordset
        Set RS = DataSource
    ElseIf dg.DataMember = "" Then
        'ADODC
        Set RS = DataSource.Recordset
    Else
        'DataEnvironment
        Set RS = DataSource.Recordsets(dg.DataMember)
    End If

    If Not RS Is Nothing Then
        Dim bmk As Variant
        If RS.Supports(adBookmark) Then
            bmk = dg.Bookmark
        Else
            bmk = Empty
        End If
        RS.Sort = dg.Columns(ColIndex).DataField
        If Not IsEmpty(bmk) Then
            dg.Bookmark = bmk
        End If
    End If
End Sub

メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ