DtMainTbl.Recordset.Sort =DtMainTbl.Recordset.Fields("字段名")

解决方案 »

  1.   

    TDBGridMainTbl.Columns(ColIndex).Name 其实返回的也是字段名所以这么做还是执行几次之后报错!报的是参数不足.
      

  2.   

    假设你使用的数据库表为table,试试下述方法。DtMainTbl.RecordsetType = 1    'Dynaset
    DtMainTbl.RecordSource  = "Select * From table order by " _
       & TDBGridMainTbl.Columns(ColIndex).DataField
    DtMainTbl.Refresh
      

  3.   

    我访问的是Access2000所以无法直接给Data控件的RecordSource赋值,只能每次把记录集赋给Data的Recordset.还有Sort与Oder by的效率那个高些?
    我要的是对查出来已经显示在Dbgrid的数据进行排序,对记录集进行直接排序是否好些.
      

  4.   

    下面的例子,工作得很好,可以参考。'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