前言
在没开始组合查询之前,听别人说了好多组合查询很难之类的话,但是也仅仅是听说,自己做起来没那么难,组合查询是机房中的重头戏,还是挺重视它的,在组合查询上还是下了不少功夫的,组合查询是在敲完结账之后敲的,所以相对结账而言还是比较简单的
逻辑分析
首先通过它的界面分析一下组合查询(以学生基本信息维护为例),从界面来看,是通过组合关系控制组合查询的,请看下图。
下面分析一下它的逻辑过程,我觉得它的逻辑也是很简单的,主要是判断和查询,具体流程请见下图
需要注意的问题:
1、选中组合查询之后才可以填写下一行
2、选中日期时使用日期控件
3、选择性别的时候只能显示等于号
代码展示
If Trim(Combo1.Text) = "" Or Trim(Combo4.Text) = "" Or Trim(Text1.Text) = "" Then
MsgBox "请将第一行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
txtSQL = txtSQL & " " & Field(Combo1.Text) & " " & Combo4.Text & "'" & Trim(Text1.Text) & "'"
'判断第一个组合关系是否选中
If Combo7.Text <> "" Then
'如果选中,判断第二行内容是否填写完整
If Combo2.Text = "" Or Combo5.Text = "" Or Text2.Text = "" Then
MsgBox "请将第二行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
'将前两行的条件加起来,完成SQL语句
txtSQL = txtSQL & " " & Field(Combo7.Text) & " " & Field(Combo2.Text) & " " & Combo5.Text & "'" & Trim(Text2.Text) & "'"
'判断第二个组合关系是否选中
If Combo8.Text <> "" Then
'如果选中,判断第三行内容是否填写完整
If Combo3.Text = "" Or Combo6 = "" Or Text3 = "" Then
MsgBox "请将第三行选项内容填写完整!", vbOKOnly + vbExclamation, "警告"
Exit Sub
Else
'将第三行的条件加起来,完成SQL语句
txtSQL = txtSQL & " " & Field(Combo8.Text) & " " & Field(Combo3.Text) & " " & Trim(Combo6.Text) & " '" & Trim(Text3.Text) & "'"
End If
End If
End If
End If
End If
Set mrc = ExecuteSQL(txtSQL, MsgText)