机房收费系统之组合查询

       组合查询其实就是多个查询条件的限定,只要思路清晰了,执行起来便容易多了。首先我把这三个查询条件看作三个整体,定义了三个过程,并将combo的字段转换成数据库中对应的字段名,执行语句时直接调用,这样在查询过程中就减少了代码量。


比如定义第一查询条件:

Private Sub InquireCondition1()
       '定义第一查询条件过程,将combo的字段名转换成数据库对应的字段名
   Select Case Combo1
       Case "卡号"
          Ziduan(0) = "cardNo"
       Case "学号"
          Ziduan(0) = "studentNo"
       Case "姓名"
          Ziduan(0) = "studentName"
       Case "性别"
          Ziduan(0) = "sex"
       Case "系别"
          Ziduan(0) = "Department"
       Case "年级"
          Ziduan(0) = "grade"
       Case "班号"
          Ziduan(0) = "class"
       
    End Select
    
    
    Select Case Combo7
       Case "与"
          ZuheRelation(0) = "and"
       Case "或"
          ZuheRelation(0) = "or"
   End Select
End Sub

然后在查询中编写代码如下:

 Dim msgText As String
                 '将sql语句定义为一个过程,在查询事件中直接引用

   txtSQL = "select * from Line_Info where  "
   
   
   If Combo1.Text = "" Then     '判断字段名是否为空
     MsgBox "请选择字段名!", vbOKOnly + vbExclamation, "警告"
     Combo1.SetFocus
     Exit Sub
  End If
  
  If Combo4.Text = "" Then      '判断选择符是否为空
     MsgBox "请选择操作符!", vbOKOnly + vbExclamation, "警告"
     Combo4.SetFocus
     Exit Sub
  End If
  
  If Text1.Text = "" Then         '判断查询内容是否为空
     MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告"
     Text1.SetFocus
     Exit Sub
  End If
  
    Call InquireCondition1
    
    
    
    If Combo7.Text = "" Then         '执行第一查询条件
       txtSQL = txtSQL & " " & Trim(Ziduan(0)) & "" & Trim(Combo4.Text) & "'" & Trim(Text1.Text) & "'"
    Else                             '执行第一查询条件和第二查询条件
             If Combo2.Text = "" Then
                MsgBox "请选择字段名!", vbOKOnly + vbExclamation, "警告"
                Combo2.SetFocus
                Exit Sub
             End If
        
              If Combo5.Text = "" Then
                 MsgBox "请选择操作符!", vbOKOnly + vbExclamation, "警告"
                 Combo5.SetFocus
                 Exit Sub
              End If
              
              If Text2.Text = "" Then
                 MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告"
                 Text2.SetFocus
                 Exit Sub
              End If
        
           Call InquireCondition2
      
      
             If Combo8.Text = "" Then
                txtSQL = txtSQL & "" & Trim(Ziduan(0)) & "" & Trim(Combo4.Text) & "'" & Trim(Text1.Text) & "'" & " " & Trim(ZuheRelation(0)) & "   " & Trim(Ziduan(1)) & " " & Trim(Combo5.Text) & "'" & Trim(Text2.Text) & "'"
             Else             '三个条件同时执行
                      If Combo3.Text = "" Then
                       MsgBox "请选择字段名!", vbOKOnly + vbExclamation, "警告"
                       Combo3.SetFocus
                       Exit Sub
                      End If
               
                     If Combo6.Text = "" Then
                        MsgBox "请选择操作符!", vbOKOnly + vbExclamation, "警告"
                        Combo6.SetFocus
                        Exit Sub
                     End If
                     
                     If Text3.Text = "" Then
                        MsgBox "请输入要查询的内容!", vbOKOnly + vbExclamation, "警告"
                        Text3.SetFocus
                        Exit Sub
                     End If
                     
                     Call InquireCondition3
               
               txtSQL = txtSQL & "" & Trim(Ziduan(0)) & "" & Trim(Combo4.Text) & "'" & Trim(Text1.Text) & "'" & "" & Trim(ZuheRelation(0)) & "  " & Trim(Ziduan(1)) & "" & Trim(Combo5.Text) & "'" & Trim(Text2.Text) & "'" & "" & Trim(ZuheRelation(1)) & "  " & Trim(Ziduan(2)) & "" & Trim(Combo6.Text) & "'" & Trim(Text3.Text) & "'"
            End If
     End If

这样便可以顺利实现了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值