机房收费--组合查询

在学生基本信息维护这一窗体里,有一个组合查询,通过组合查询我们可以随意选择不同的条件,进而查询到自己想要查询的内容。

从上图我们不难看出,查询的条件是比较复杂一些,而且一个条件的设定就必须包含三个控件的内容,三个条件的关系分为两种,即“与””或”。且其在选择中有一定的顺序:只有第一行的条件全部填好,才可以选择第一个组合关系;同理,只有前两行的条件及第一个组合关系按顺序填好,才可以选择第二个组合关系,进而填写第三行条件。

当然,还有一点不得不提的是,当字段名为“性别”时,操作符只能选择“=”或“<>”;字段名为日期或者时间时,查询内容要有格式要求,其他优化内容同理。

下面是流程图:

代码如下:

Dim c(2) As Boolean   '判断条件中的格子中是否有数据
    
     '判断三个条件对应的框中是否为空
    If cobField1.Text = "" Or cobSymbol1.Text = "" Or txtContent1.Text = "" Then
    Else
        c(0) = True         '第一栏不为空
    If cobField2.Text = "" Or cobSymbol2.Text = "" Or txtContent2.Text = "" Then
    Else
        c(1) = True         '第二栏不为空
    If cobField3.Text = "" Or cobSymbol3.Text = "" Or txtContent3.Text = "" Then
    Else
        c(2) = True         '第三栏不为空
    End If
    End If
    End If
    
    txtSQL = "select * from student_Info where "
   
    '组合查询所有的情况
    If c(2) Then
        If cobRelation2.Text = "或" Then
            '0 or 1 or 2
            txtSQL = txtSQL & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "or " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'" & "or " & CField(cobField3.Text) & CSymbol(cobSymbol3.Text) & " '" & CContent(txtContent3.Text) & "'"
            Set mrc = ExecuteSQL(txtSQL, Msgtext)

            Call Add
            mrc.Close
        Else
            If cobRelation2.Text = "与" Then
                '0 and 1 and 2
                txtSQL = txtSQL & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "and " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'" & "and " & CField(cobField3.Text) & CSymbol(cobSymbol3.Text) & " '" & CContent(txtContent3.Text) & "'"
                Set mrc = ExecuteSQL(txtSQL, Msgtext)

                Call Add
                mrc.Close
            Else
                MsgBox "请输入第二个组合条件"
            End If
        End If
    Else
    If c(1) Then
        If cobRelation1.Text = "或" Then
            '0 or 1
            txtSQL = txtSQL & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "or " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'"
            Set mrc = ExecuteSQL(txtSQL, Msgtext)
           
            Call Add
            mrc.Close
        Else
            If cobRelation1.Text = "与" Then
                '0 and 1
                txtSQL = txtSQL & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'" & "and " & CField(cobField2.Text) & CSymbol(cobSymbol2.Text) & " '" & CContent(txtContent2.Text) & "'"
                Set mrc = ExecuteSQL(txtSQL, Msgtext)
                
                Call Add
                mrc.Close
            Else
                MsgBox "请选择组合关系"
            End If
        End If

    Else
    If c(0) Then
         '0
        txtSQL = txtSQL & CField(cobField1.Text) & CSymbol(cobSymbol1.Text) & "'" & CContent(txtContent1.Text) & "'"
        Set mrc = ExecuteSQL(txtSQL, Msgtext)
    
        Call Add
        mrc.Close
    Else
        MsgBox "请输入第一条件"
    End If
    End If
    End If
发布了67 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39071599/article/details/94121721