机房收费系统之组合查询


<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>    昨天师傅验收了我的机房收费系统,代码上基本没发现什么错误师傅让我过了,帮我提出了一些改进的方案,十分值得借鉴。这次我和大家探讨一下组合查询的方法。</strong></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>    组合查询看起来貌似很复杂,因为要限制的条件很多,我用了下面这种方法,觉得就没那么复杂了。首先我判断有几条查询条件的依据是最后两个逻辑关系Combox。第一个为空,则说明只有一个条件,所以让第二个逻辑关系combox的enable为false。若第一个不为空则判断第二个是否为空,若第二个为空则有两条查询条件,若第二个不为空则有三个查询条件。</strong></span>
If CombRelation1.Text = "" Then
        CombRelation2.Enabled = False
        txtSQL = "select * from Line_Info where " & Trim(CombFileName1.Tag) & "" & Trim(CombSign1.Text) & " '" & Trim(txtNeirong1.Text) & "'"
Else
        If CombRelation2.Text = "" Then
             txtSQL = "select * from Line_Info where " & Trim(CombFileName1.Tag) & "" & Trim(CombSign1.Text) & "'" & Trim(txtNeirong1.Text) & "'" & Trim(CombRelation1.Tag) & " " & Trim(CombFileName2.Tag) & "" & Trim(CombSign2.Text) & "'" & Trim(txtNeirong2.Text) & "'"
        Else
             txtSQL = "select * from Line_Info where " & Trim(CombFileName1.Tag) & "" & Trim(CombSign1.Text) & "'" & Trim(txtNeirong1.Text) & "'" & Trim(CombRelation1.Tag) & " " & Trim(CombFileName2.Tag) & "" & Trim(CombSign2.Text) & "'" & Trim(txtNeirong2.Text) & "'" & Trim(CombRelation2.Tag) & " " & Trim(CombFileName3.Tag) & " " & Trim(CombSign3.Text) & "'" & Trim(txtNeirong3.Text) & "'"
        End If
End If
If CombFileName1.Text = "卡号" Then
    CombFileName1.Tag = "cardno"
End If
If CombFileName1.Text = "姓名" Then
    CombFileName1.Tag = "studentName"
End If
If CombFileName1.Text = "上机日期" Then
    CombFileName1.Tag = "ondate"
End If
If CombFileName1.Text = "上机时间" Then
    CombFileName1.Tag = "ontime"
End If
If CombFileName1.Text = "下机日期" Then
    CombFileName1.Tag = "offdate"
End If
If CombFileName1.Text = "下机时间" Then
    CombFileName1.Tag = "offtime"
End If
If CombFileName1.Text = "消费金额" Then
    CombFileName1.Tag = "consume"
End If
If CombFileName1.Text = "余额" Then
    CombFileName1.Tag = "cash"
End If
If CombFileName1.Text = "备注" Then
    CombFileName1.Tag = "status"
End If

If CombRelation1.Text = "与" Then
   CombRelation1.Tag = "And"
End If
If CombRelation1.Text = "或" Then
    CombRelation1.Tag = "Or"
End If

这样一个复杂的问题就变得简单了。代码中的控件的tag是个非常好用的方法,很灵活。

用这种方法有个缺陷就是点击查询后,第二个combox一直是不可用的,只能关闭窗口后,重新加载才可继续使用。解决这个问题的方法是当焦点失去时激活第二个Combox


Private Sub ComSee_LostFocus()
CombRelation2.Enabled = True
End Sub
还有为了限制用户非法输入我的所有的Combox全是只读的,这就存在了一个问题,当我想选空的时候就无法选择了必须要选一个,解决方案如下:


在里面添加一个空的选项,这样就可以选则空了。

这是我关于组合查询的一些小心得,求斧正!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值