机房--学生基本信息维护(组合查询)

第一步:
我定义了数据库查询代码中的三个变量(where 后面的全部定义成了变量,就避免一直写不同的条件了)
①字段名
②操作符
③要查询的内容
第二步:
定义好了之后,把他们定义成函数,封装,在代码中直接调用
第三步:
代码部分:
(call add 这个代码是数据的显示)

Public mrc As ADODB.Recordset
Public txtsql As String
Public msgtext As String

Private Sub cmdInquiry_Click()
    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
                                Exit Sub
                            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
End Sub

定义的函数部分:
①这是要查询内容的定义

Public Function CContent(Content As String)
    
    If Content = txtContent1.Text Then
        CContent = txtContent1.Text
    Else
        If Content = txtContent2.Text Then
        CContent = txtContent2.Text
        Else
            If Content = txtContent3.Text Then
                CContent = txtContent3.Text
            End If
        End If
    End If
    
End Function

②这是要查询字段名的定义:

Public Function CField(FieldName As String)

    Select Case FieldName
        Case "卡号"
            CField = "cardno"
        Case "学号"
            CField = "studentno"
        Case "姓名"
            CField = "studentname"
        Case "性别"
            CField = "sex"
        Case "系别"
            CField = "department"
        Case "年级"
            CField = "grade"
        Case "班级"
            CField = "class"
    End Select
End Function

③这是操作符的定义

ublic Function CSymbol(Symbol As String)
    Select Case Symbol
        Case "="
            CSymbol = "="
        Case ">"
            CSymbol = ">"
        Case "<"
            CSymbol = "<"
        Case "<>"
            CSymbol = "<>"
    End Select
End Function

猜你喜欢

转载自blog.csdn.net/lclcsdnblink/article/details/83719264
今日推荐