可以的 如下:Private Sub Form_Load() Set db = New ADODB.Connection db.CursorLocation = adUseClient db.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=data;"
Set rs = New ADODB.Recordset strsql = "select * from table1" rs.Open strsql, db, adOpenDynamic, adLockBatchOptimistic Set MSHFlexGrid1.DataSource = rs rs.Close End SubPrivate Sub Command1_Click() strsql = "select * from table1 order by name" rs.Open strsql, db, adOpenDynamic, adLockBatchOptimistic Set MSHFlexGrid1.DataSource = rs End Sub
Sort、TextMatrix 属性 (MSHFlexGrid) 示例下面的示例使用 Sort 和 TextMatrix 属性。它根据一个 ComboBox 控件的值执行一个 MSHFlexGrid 排序。要使用该示例,在窗体中放置一个 MSHFlexGrid 控件和一个 ComboBox 控件。把下面的代码粘贴到 Declarations 节,然后按 F5 键。注意 如果正在使用 MSFlexGrid,用“MSFlexGrid1”代替“MSHFlexGrid1”。Private Sub Combo1_Click() ' 根据排序方法选择列。 Select Case Combo1.ListIndex Case 0 To 2 MSHFlexGrid1.Col =1 Case 3 To 4 MSHFlexGrid1.Col =2 Case 4 To 8 MSHFlexGrid1.Col =1 End Select ' 根据 Combo1.ListIndex 排序。 MSHFlexGrid1.Sort =Combo1.ListIndex End Sub Private Sub Form_Load() Dim i As Integer ' 用随机数据填充 MSHFlexGrid。 MSHFlexGrid1.Cols =3 ' 创建三列。
For i =1 To 11 ' 添加十项。 MSHFlexGrid1.AddItem "" MSHFlexGrid1.Col =2 MSHFlexGrid1.TextMatrix(i, 1) =SomeName(i) MSHFlexGrid1.TextMatrix(i, 2) =Rnd() Next i ' 用排序选择填充 combo 框。 With Combo1 .AddItem "flexSortNone" ' 0 .AddItem "flexSortGenericAscending" '1 .AddItem "flexSortGenericDescending" '2 .AddItem "flexSortNumericAscending" '3 .AddItem "flexSortNumericDescending" '4 .AddItem "flexSortStringNoCaseAsending" '5 .AddItem "flexSortNoCaseDescending" '6 .AddItem "flexSortStringAscending" '7 .AddItem "flexSortStringDescending" '8 .ListIndex =0 End With End Sub Private Function SomeName(i As Integer) As String Select Case i Case 1 SomeName ="Ann" Case 2 SomeName ="Glenn" Case 3 SomeName ="Sid" Case 4 SomeName ="Anton" Case 5 SomeName ="Hoagie" Case 6 SomeName ="Traut 'Trane" Case 7 SomeName ="MereD Wah" Case 8 SomeName ="Kemp" Case 9 SomeName ="Sandy" Case 10 SomeName ="Lien" Case 11 SomeName ="Randy" End Select End Function'===========================================Sort 属性 (MSHFlexGrid) 设置一个值,根据选定的条件排序选择的行。这一属性在设计时不可用。语法object.Sort [=value]Sort 属性的语法包含如下部分:部分 描述 object 一个对象表达式,其值为“应用于”列表中的一个对象。 Value 一个整数或常数,指定排序类型。如设置值中所述。 设置值value 的设置值如下所示:常数 值 描述 flexSortNone 0 无。不执行排序。 flexSortGenericAscending 1 一般升序。执行估计文本不管是字符串或者是数字的升序排序。 flexSortGenericDescending 2 一般降序。执行估计文本不管是字符串或者是数字的降序排序。 flexSortNumericAscending 3 数值升序。执行将字符串转换为数值的升序排序。 flexSortNumericDescending 4 数值降序。执行将字符串转换为数值的降序排序。 flexSortStringNoCaseAsending 5 字符串升序。执行不区分字符串大小写比较的升序排序。 flexSortNoCaseDescending 6 字符串降序。执行不区分字符串大小写比较的降序排序。 flexSortStringAscending 7 字符串升序。执行区分字符串大小写比较的升序排序。 flexSortStringDescending 8 字符串降序。执行区分字符串大小写比较的降序排序。 flexSortCustom 9 自定义。使用 Compare 事件比较行。 说明Sort 属性总是排序整个行。要指定排序的范围,设置 Row 和 RowSel 属性。如果 Row 和 RowSel 相同,MSHFlexGrid 将排序所有不固定行。用于排序的关键字由 Col 和 ColSel 属性决定。排序总是在一个从左到右的方向上完成。例如,如果 Col =3 且 ColSel =1,排序根据列 1 的内容,然后是列 2 、列 3 的内容来进行。用于行比较的方法由 value 决定,如设置值中的解释。设置值 9 (自定义)最灵活,但比其它设置慢,典型地大约是 10 分之一,使用这一设置的另一种可能是创建一个不可见列,用关键字填充,然后使用另一设置执行一个基于自定义的排序。这对基于日期的排序是一个好方法。
Private Sub DoSort() MSHFlexGrid.Col = 0 MSHFlexGrid.ColSel = MSHFlexGrid - 1 MSHFlexGrid.Sort = 1 '一般为升序。 End Sub 看看帮助,ok!
db.CursorLocation = adUseClient
db.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=data;"
Set rs = New ADODB.Recordset
strsql = "select * from table1" rs.Open strsql, db, adOpenDynamic, adLockBatchOptimistic
Set MSHFlexGrid1.DataSource = rs
rs.Close
End SubPrivate Sub Command1_Click()
strsql = "select * from table1 order by name" rs.Open strsql, db, adOpenDynamic, adLockBatchOptimistic
Set MSHFlexGrid1.DataSource = rs
End Sub
' 根据排序方法选择列。
Select Case Combo1.ListIndex
Case 0 To 2
MSHFlexGrid1.Col =1
Case 3 To 4
MSHFlexGrid1.Col =2
Case 4 To 8
MSHFlexGrid1.Col =1
End Select
' 根据 Combo1.ListIndex 排序。
MSHFlexGrid1.Sort =Combo1.ListIndex
End Sub
Private Sub Form_Load()
Dim i As Integer
' 用随机数据填充 MSHFlexGrid。
MSHFlexGrid1.Cols =3 ' 创建三列。
For i =1 To 11 ' 添加十项。
MSHFlexGrid1.AddItem ""
MSHFlexGrid1.Col =2
MSHFlexGrid1.TextMatrix(i, 1) =SomeName(i)
MSHFlexGrid1.TextMatrix(i, 2) =Rnd()
Next i
' 用排序选择填充 combo 框。
With Combo1
.AddItem "flexSortNone" ' 0
.AddItem "flexSortGenericAscending" '1
.AddItem "flexSortGenericDescending" '2
.AddItem "flexSortNumericAscending" '3
.AddItem "flexSortNumericDescending" '4
.AddItem "flexSortStringNoCaseAsending" '5
.AddItem "flexSortNoCaseDescending" '6
.AddItem "flexSortStringAscending" '7
.AddItem "flexSortStringDescending" '8
.ListIndex =0
End With
End Sub
Private Function SomeName(i As Integer) As String
Select Case i
Case 1
SomeName ="Ann"
Case 2
SomeName ="Glenn"
Case 3
SomeName ="Sid"
Case 4
SomeName ="Anton"
Case 5
SomeName ="Hoagie"
Case 6
SomeName ="Traut 'Trane"
Case 7
SomeName ="MereD Wah"
Case 8
SomeName ="Kemp"
Case 9
SomeName ="Sandy"
Case 10
SomeName ="Lien"
Case 11
SomeName ="Randy"
End Select
End Function'===========================================Sort 属性 (MSHFlexGrid)
设置一个值,根据选定的条件排序选择的行。这一属性在设计时不可用。语法object.Sort [=value]Sort 属性的语法包含如下部分:部分 描述
object 一个对象表达式,其值为“应用于”列表中的一个对象。
Value 一个整数或常数,指定排序类型。如设置值中所述。
设置值value 的设置值如下所示:常数 值 描述
flexSortNone 0 无。不执行排序。
flexSortGenericAscending 1 一般升序。执行估计文本不管是字符串或者是数字的升序排序。
flexSortGenericDescending 2 一般降序。执行估计文本不管是字符串或者是数字的降序排序。
flexSortNumericAscending 3 数值升序。执行将字符串转换为数值的升序排序。
flexSortNumericDescending 4 数值降序。执行将字符串转换为数值的降序排序。
flexSortStringNoCaseAsending 5 字符串升序。执行不区分字符串大小写比较的升序排序。
flexSortNoCaseDescending 6 字符串降序。执行不区分字符串大小写比较的降序排序。
flexSortStringAscending 7 字符串升序。执行区分字符串大小写比较的升序排序。
flexSortStringDescending 8 字符串降序。执行区分字符串大小写比较的降序排序。
flexSortCustom 9 自定义。使用 Compare 事件比较行。
说明Sort 属性总是排序整个行。要指定排序的范围,设置 Row 和 RowSel 属性。如果 Row 和 RowSel 相同,MSHFlexGrid 将排序所有不固定行。用于排序的关键字由 Col 和 ColSel 属性决定。排序总是在一个从左到右的方向上完成。例如,如果 Col =3 且 ColSel =1,排序根据列 1 的内容,然后是列 2 、列 3 的内容来进行。用于行比较的方法由 value 决定,如设置值中的解释。设置值 9 (自定义)最灵活,但比其它设置慢,典型地大约是 10 分之一,使用这一设置的另一种可能是创建一个不可见列,用关键字填充,然后使用另一设置执行一个基于自定义的排序。这对基于日期的排序是一个好方法。
MSHFlexGrid.Col = 0
MSHFlexGrid.ColSel = MSHFlexGrid - 1
MSHFlexGrid.Sort = 1 '一般为升序。
End Sub
看看帮助,ok!
MSHFlexGrid.Sort = 1'升序,等于2时为降