投稿日 | : 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