VB版机房管理系统-组合查询

刚开始接触组合查询的时候,脑子里一团浆糊,因为逻辑关系没有理清楚,理清楚以后问题也就不大了


① 在7、8为空的时候,进行第一行查询,且1、4、a不能为空

② 在7不为空,8为空的时候的时候,进行第一、二行组合查询,且1、4、a和2、5、b不能为空

③ 在7、8不为空的时候,三行组合查询,且所有项不能为空

PS:在7为空的时候,第二行往下的选项,都不能进行操作(同理,8也是)

代码如下:

Private Sub cmdOK_Click()

    txtSQL = "select * from line_Info where "
    '第一行查询
    If Trim(Combo1.Text = "") Then
        MsgBox "请输入字段名", vbOKCancel + vbExclamation, "提示"
        Combo1.SetFocus
        Exit Sub
    ElseIf Trim(Combo4.Text = "") Then
            MsgBox "请输入操作符", vbOKCancel + vbExclamation, "提示"
            Combo4.SetFocus
            Exit Sub
    ElseIf Trim(txt1.Text = "") Then
                MsgBox "请输入要查询的内容", vbOKCancel + vbExclamation, "提示"
                txt1.SetFocus
                Exit Sub
    Else
            
        txtSQL = txtSQL & " " & FiledName(Combo1.Text) & " " & Combo4.Text & "'" & Trim(txt1.Text) & "'"


        '第二行查询
            If Trim(Combo7.Text) <> "" Then
            
            If Trim(Combo2.Text = "") Then
                MsgBox "请输入字段名", vbOKCancel + vbExclamation, "提示"
                Combo2.SetFocus
                Exit Sub
            ElseIf Trim(Combo5.Text = "") Then
                    MsgBox "请输入操作符", vbOKCancel + vbExclamation, "提示"
                    Combo5.SetFocus
                    Exit Sub
            ElseIf Trim(txt2.Text = "") Then
                        MsgBox "请输入要查询的内容", vbOKCancel + vbExclamation, "提示"
                        txt2.SetFocus
                        Exit Sub
            Else
                  txtSQL = txtSQL & " " & FiledName(Combo7.Text) & " " & FiledName(Combo2.Text) & " " & Combo5.Text & "'" & Trim(txt2.Text) & "'"
                        
        '第三行查询
                If Trim(Combo8.Text) <> "" Then
                
                    If Trim(Combo3.Text = "") Then
                        MsgBox "请输入字段名", vbOKCancel + vbExclamation, "提示"
                        Combo3.SetFocus
                        Exit Sub
                    ElseIf Trim(Combo6.Text = "") Then
                            MsgBox "请输入操作符", vbOKCancel + vbExclamation, "提示"
                            Combo6.SetFocus
                            Exit Sub
                    ElseIf Trim(txt3.Text = "") Then
                                MsgBox "请输入要查询的内容", vbOKCancel + vbExclamation, "提示"
                                txt3.SetFocus
                                Exit Sub
                    Else
                         txtSQL = txtSQL & " " & Trim(FiledName(Combo8.Text)) & " " & Trim(FiledName(Combo3.Text)) & " " & Trim(Combo6.Text) & "'" & Trim(txt3.Text) & "'"
                         
                    End If
                End If
            End If
        End If
     End If
    
    Set mrc = ExecuteSQL(txtSQL, msgtext)
    If mrc.EOF = True Then
        MsgBox "该条件的数据不存在"
        txtInquiryContent.Clear
        Combo1.Text = ""
        Combo2.Text = ""
        Combo3.Text = ""
        Combo4.Text = ""
        Combo5.Text = ""
        Combo6.Text = ""
        Combo7.Text = ""
        Combo8.Text = ""
        txt1.Text = ""
        txt2.Text = ""
        txt3.Text = ""
    Else
        With txtInquiryContent
            .Rows = 2           'rows:行
            .CellAlignment = 1  'CellAlingment:排列
            .ColWidth(0) = 1400 'width:宽度
            .ColWidth(1) = 1400
            .ColWidth(2) = 1400
            .ColWidth(3) = 1400
            .ColWidth(4) = 1400
            .ColWidth(5) = 1400
            .ColWidth(6) = 1400
            .ColWidth(7) = 1400
            .ColWidth(8) = 1400
            .TextMatrix(0, 0) = "卡号"
            .TextMatrix(0, 1) = "姓名"
            .TextMatrix(0, 2) = "上机日期"
            .TextMatrix(0, 3) = "上机时间"
            .TextMatrix(0, 4) = "下机日期"
            .TextMatrix(0, 5) = "下机时间"
            .TextMatrix(0, 6) = "消费金额"
            .TextMatrix(0, 7) = "余额"
            .TextMatrix(0, 8) = "备注"
            
            Do While Not mrc.EOF
            .Rows = .Rows + 1
            .CellAlignment = 1
            .ColWidth(0) = 1400
            .ColWidth(1) = 1400
            .ColWidth(2) = 1400
            .ColWidth(3) = 1400
            .ColWidth(4) = 1400
            .ColWidth(5) = 1400
            .ColWidth(6) = 1400
            .ColWidth(7) = 1400
            .ColWidth(8) = 1400
            
            .TextMatrix(.Rows - 2, 0) = mrc!cardno      	'mrc.Fields(1)
            .TextMatrix(.Rows - 2, 1) = mrc!studentname 	'Fields(3)
            .TextMatrix(.Rows - 2, 2) = mrc!ondate      	'mrc.Fields(6)
            .TextMatrix(.Rows - 2, 3) = mrc!OnTime      	'mrc.Fields(7)
            .TextMatrix(.Rows - 2, 4) = mrc!offdate & ""     	'mrc.Fields(8) & ""
            .TextMatrix(.Rows - 2, 5) = mrc!offtime & ""     	'mrc.Fields(9) & ""
            .TextMatrix(.Rows - 2, 6) = mrc!Consume & ""     	'mrc.Fields(11) & ""
            .TextMatrix(.Rows - 2, 7) = mrc!Cash & ""        	'mrc.Fields(12) & ""
            .TextMatrix(.Rows - 2, 8) = mrc!Status & ""      	'mrc.Fields(13) & ""
             mrc.MoveNext
        Loop
    End With
    mrc.Close
 End If
End Sub




猜你喜欢

转载自blog.csdn.net/lifuchao784533/article/details/78943040