关于recordset的sort的问题
环境vb6.用的是datagrid显示了相关的记录,可以在datagrid中添加修改记录,现在需要点击datagrid上的标题栏时按照点击的字段排序。我的程序参照csdn上:
Private Sub dgDataGrid_HeadClick(ByVal ColIndex As Integer)
Static lastField As String
Dim rsRepair As ADODB.Recordset
Set rsRepair = m_clsEODParameters.GetRecordset
If lastField = dgDataGrid.Columns(ColIndex).DataField Then
rsRepair.Sort = dgDataGrid.Columns(ColIndex).DataField & " DESC"
lastField = dgDataGrid.Columns(ColIndex).DataField & " DESC"
Else
rsRepair.Sort = dgDataGrid.Columns(ColIndex).DataField
lastField = dgDataGrid.Columns(ColIndex).DataField
End If
End Sub
按照上面程序在点击标题栏的时候相应的字段确实是排序了达到了要求。可是每次点击排序后再添加新字段的时候,新添加的字段会自动排序跳到顺序位置,而不是停留在最后。例如原来datagrid中有如下记录(假设有2栏)
A 1
G 7
F 6
B 2
我点击第一栏后按照字母排序得到
A 1
B 2
F 6
G 7
这时我在4条记录后面再添加一条记录(D 5)时,本来希望的效果是
A 1
B 2
F 3
G 4
D 5
可是当我在第一栏输入D时(还没有输入第2栏值时),datagrid会立即对新添加的第一栏进行排序变成如下
A 1
B 2
D
F 3
G 4
这样当记录有几千条时我还要去找到这个记录去添加第2栏的值5。
我是初用vb做,而且是使用得vb6,不是.net,对此应该如何处理,使得达到只是点击标题栏后才对数据进行排序,新添加的数据不需自动排序只是添加到结尾,这个的话该如何处理。
--------------------编程问答-------------------- 当你编辑时,不用排序,编辑完后再处理排序动作。 --------------------编程问答-------------------- 你新增记录之前先设置rsRepair.sort="" --------------------编程问答-------------------- 添加操作是不需要重新定位的,如下
rs.addnew--------------------编程问答-------------------- 没遇到过这种情况.
rs("field1") = "D"
rs("field2") = 5
rs.update
补充:VB , 基础类