对DATA & DBGRID绑定数据排序完成
排序原代码,允许对任意3个字段进行排序:
Private Sub cmdSort_Click()
Dim db As Database 'db 数据库
Dim strSqlNew As String
Dim strSqlDel As String
Dim strSqlRestore As String
Dim strSqLDrop As String
Set db = OpenDatabase(App.Path & "\mlc.mdb")
Dim strFDN1 As String
Dim strFDN2 As String
Dim strFDN3 As String
Dim strFDN As String
Dim cmbSelectzd1 As ComboBox
Dim cmbSelectzd2 As ComboBox
Dim cmbSelectzd3 As ComboBox
Set cmbSelectzd1 = cmbZD1
Set cmbSelectzd2 = cmbZD2
Set cmbSelectzd3 = cmbZD3
If optAsc1.Value = False Then
strFDN1 = cmbSelectzd1.List(cmbSelectzd1.ListIndex) & " Desc"
Else
strFDN1 = cmbSelectzd1.List(cmbSelectzd1.ListIndex) & " ASC"
End If
If optAsc2.Value = False Then
strFDN2 = cmbSelectzd2.List(cmbSelectzd2.ListIndex) & " Desc"
Else
strFDN2 = cmbSelectzd2.List(cmbSelectzd2.ListIndex) & " ASC"
End If
If optAsc3.Value = False Then
strFDN3 = cmbSelectzd3.List(cmbSelectzd3.ListIndex) & " Desc"
Else
strFDN3 = cmbSelectzd3.List(cmbSelectzd3.ListIndex) & " ASC"
End If
Select Case cmbSelectzd1.List(cmbSelectzd1.ListIndex)
Case ""
strFDN1 = ""
Select Case cmbSelectzd2.List(cmbSelectzd2.ListIndex)
Case ""
strFDN2 = ""
Select Case cmbSelectzd3.List(cmbSelectzd3.ListIndex)
Case ""
strFDN3 = ""
MsgBox "选择参数有误或未进行选择,请重新选择!", 64, "错误的选择"
Exit Sub
Case Is <> ""
strFDN = strFDN3
End Select
Case Is <> ""
Select Case cmbSelectzd3.List(cmbSelectzd3.ListIndex)
Case ""
strFDN = strFDN2
Case Is <> ""
strFDN = strFDN2 + ", " + strFDN3
End Select
End Select
Case Is <> ""
Select Case cmbSelectzd2.List(cmbSelectzd2.ListIndex)
Case ""
strFDN2 = ""
Select Case cmbSelectzd3.List(cmbSelectzd3.ListIndex)
Case ""
strFDN3 = ""
strFDN = strFDN1
Case Is <> ""
strFDN = strFDN1 + ", " + strFDN3
End Select
Case Is <> ""
Select Case cmbSelectzd3.List(cmbSelectzd3.ListIndex)
Case ""
strFDN = strFDN1 + ", " + strFDN2
Case Is <> ""
strFDN = strFDN1 + "," + strFDN2 + ", " + strFDN3
End Select
End Select
End Select
If cmbSelectzd1.List(cmbSelectzd1.ListIndex) = cmbSelectzd2.List(cmbSelectzd2.ListIndex) Or cmbSelectzd2.List(cmbSelectzd2.ListIndex) = cmbSelectzd3.List(cmbSelectzd3.ListIndex) Or cmbSelectzd1.List(cmbSelectzd1.ListIndex) = cmbSelectzd3.List(cmbSelectzd3.ListIndex) Then
MsgBox "选择参数有误,请重新选择!", 64, "错误的选择"
Exit Sub
Else
End If
strSqlNew = "select * into " & "new" & RCName & " from " & RCName & " order by " & strFDN
db.Execute strSqlNew
'MsgBox "完成临时表建立", 64, "Temp table created!"
strSqlDel = "delete * from " & RCName
db.Execute strSqlDel
'MsgBox "完成原表记录删除", 64, "delete records in old table!!!"
strSqlRestore = "insert into " & RCName & " select * from new" & RCName
db.Execute strSqlRestore
'MsgBox "完成临时表数据回写至原表", 64, "Trans data!!!"
strSqLDrop = "drop table new" & RCName
db.Execute strSqLDrop
'MsgBox "完成临时表删除", 64, "Delete temp table"
db.Close
frmTableShow.Dataconnect.Refresh
frmTableShow.DBGrid1.Refresh
Unload Me
End Sub