前言:
组合查询窗体一共有三个,都是在操作员的菜单中:
学生基本信息维护、学生上机统计信息、操作员工作记录
过程:
开始在敲组合查询窗体的时候,总是感觉很乱,后来师父建议把流程图画下来,然后再写代码
果然就有思路了,尽管还是改了几次。
画的流程图有很多种思路,我就用了两种,但是还是感觉第一种流程图的方法比较严密,尽管代码很多。
第一种思路:
由三个条件切入
流程图:
第二种思路:
由两个连接符切入
流程图:
二者的代码大同小异:
关键代码:
If Trim(Namecombo3.Text) = "" Or Trim(Actcombo3.Text) = "" Or Trim(Text3.Text = "") Then
'提示条件
MsgBox "请选择查询条件!"
Exit Sub
Else
'第三行有条件
'执行一二三行查询
txtSQL3 = "select * From line_Info where " & FieldName(Namecombo1.Text) & Actcombo1.Text & "'" & Trim(Text1.Text) & "'" & FieldName(Combinecombo1.Text) & FieldName(Namecombo2.Text) & Actcombo2.Text & "'" & Trim(Text2.Text) & "'" & FieldName(Combinecombo2.Text) & FieldName(Namecombo3.Text) & Actcombo3.Text & "'" & Trim(Text3.Text) & "'"
Set mrc3 = ExecuteSQL(txtSQL3, Msgtext3)
If mrc3.EOF Then
MsgBox "没有记录!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
'判断是否移动到数据集对象的最后一条记录
Do While Not mrc3.EOF
.CellAlignment = 1
.TextMatrix(.Rows - 1, 0) = Trim(mrc3.Fields(1))
.TextMatrix(.Rows - 1, 1) = Trim(mrc3.Fields(3))
.TextMatrix(.Rows - 1, 2) = Trim(mrc3.Fields(6))
.TextMatrix(.Rows - 1, 3) = Trim(mrc3.Fields(7))
.TextMatrix(.Rows - 1, 4) = Trim(mrc3.Fields(8))
.TextMatrix(.Rows - 1, 5) = Trim(mrc3.Fields(9))
.TextMatrix(.Rows - 1, 6) = Trim(mrc3.Fields(11))
.TextMatrix(.Rows - 1, 7) = Trim(mrc3.Fields(12))
.TextMatrix(.Rows - 1, 8) = Trim(mrc3.Fields(13))
'移动到下一条记录
mrc3.MoveNext
.Rows = .Rows + 1 '预留空间给下一条记录
Loop
.Rows = .Rows - 1 '将最后增加的空行删除
Exit Sub
End If