下面的例子,工作得很好,可以参考。'DtMainTbl :Data控件 'TDBGridMainTbl :TrurDbGrid控件,其DataSource为DtMainTbl 'D:\Temp\db1.mdb :Access2000数据库 Private PobjDb As Database Private PobjRs As RecordsetPrivate Sub Form_Load() Set PobjDb = Workspaces(0).OpenDatabase("D:\Temp\db1.mdb") Set PobjRs = PobjDb.OpenRecordset("Select * from Table1") Set DtMainTbl.Recordset = PobjRs End SubPrivate Sub Form_Unload(Cancel As Integer) PobjRs.Close PobjDb.Close End SubPrivate Sub TDBGridMainTbl_HeadClick(ByVal ColIndex As Integer) Set PobjRs = PobjDb.OpenRecordset( _ "Select * from T Order by " _ & TDBGridMainTbl.Columns(ColIndex).DataField) Set DtMainTbl.Recordset = PobjRs End Sub
DtMainTbl.RecordSource = "Select * From table order by " _
& TDBGridMainTbl.Columns(ColIndex).DataField
DtMainTbl.Refresh
我要的是对查出来已经显示在Dbgrid的数据进行排序,对记录集进行直接排序是否好些.
'TDBGridMainTbl :TrurDbGrid控件,其DataSource为DtMainTbl
'D:\Temp\db1.mdb :Access2000数据库
Private PobjDb As Database
Private PobjRs As RecordsetPrivate Sub Form_Load()
Set PobjDb = Workspaces(0).OpenDatabase("D:\Temp\db1.mdb")
Set PobjRs = PobjDb.OpenRecordset("Select * from Table1")
Set DtMainTbl.Recordset = PobjRs
End SubPrivate Sub Form_Unload(Cancel As Integer)
PobjRs.Close
PobjDb.Close
End SubPrivate Sub TDBGridMainTbl_HeadClick(ByVal ColIndex As Integer)
Set PobjRs = PobjDb.OpenRecordset( _
"Select * from T Order by " _
& TDBGridMainTbl.Columns(ColIndex).DataField)
Set DtMainTbl.Recordset = PobjRs
End Sub