对DATA & DBGRID绑定数据排序完成

OLD_VB_FAN 2001-05-27 08:44:00
排序原代码,允许对任意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
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yicn 2001-05-27
  • 打赏
  • 举报
回复
应该用ADO&DataGrid 了。

谁要,Email:lenglianjie2000@sina.com
suinx 2001-05-27
  • 打赏
  • 举报
回复
我也看了
fishboyok 2001-05-27
  • 打赏
  • 举报
回复
哪里,我不是来看了吗。到这里不是为了拿分。要分有什么用,还不是为了问问题,求解答
吗。现在这里有不要分的解答,干吗不看。
vbkiller 2001-05-27
  • 打赏
  • 举报
回复
哈哈,这里的高手真多,想前些日子,我拼命向大家请教,没人仔细给我讲解一下如何进行排序,现在,白帖出来的竟然也没人来看?是因为没有分?
OLD_VB_FAN 2001-05-27
  • 打赏
  • 举报
回复
上面有少量错误,是关于字段选择与否及字段名以数字开头时的问题,我已搞定(对高手是小菜,对我来说又死了好多脑细胞哦)

742

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧