VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/05/07(Mon) 15:40
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe: データグリッドのソート

> 表示されたデータをソートすることは出来ないのでしょうか?

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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -