您的位置:首页 > 其它

机房那些事儿---组合查询

2017-02-05 21:19 134 查看
    机房收费系统其实真正敲起来也并没有辣么难,他前面好些内容跟学生管理系统都是类似的,但是组合查询就不一样了,可以算是一个新知识吧!



下面,我们先来简单分析一下这个窗口

    一.判断第1行查询条件是否为空,若不为空且组合关系4为空,查询结果符合第1行查询的内容

    二.组合关系4不为空,第2行查询条件不能为空,查询结果符合第1行和第2行组合查询的内容

    三.组合关系4、5均不为空,第2、3行查询条件均不能为空,查询结果符合第1、2、3行组合查询的内容

    备注:若4为空,则2、3、5中控件的enable属性均为false

          若4不为空,5为空,2中控件的enable属性为true,3、5控件的属性为false

          若4、5均不为空,控件enable属性均为true

    分析完窗口的功能之后,最重点的来了---代码

    由于这部分属于新的内容,代码当然也没有接触过,所以借鉴了师傅的博客
http://blog.csdn.net/yiwangxiblog/article/details/46671573?foxhandler=RssReadRenderProcessHandler
    在实现查询这一功能的代码我是用的优化过后的代码 

txtSQL = "select * from worklog_Info where "
strA = FieldName(Combo1.Text) & Combo4.Text & "'" & Text1.Text & "'"
strB = " " & Combo7.Text & " " & FieldName(Combo2.Text) & Combo5.Text & "'" & Text2.Text & "'"
strC = " " & Combo6.Text & " " & FieldName(Combo3.Text) & Combo8.Text & "'" & Text3.Text & "'"
txtSQL = txtSQL & strA & strB & strC    看上去,代码简单易懂,看上去没有什么破绽,但是运行起来问题就来了---查询结果
每次都是满足所有查询条件的,如果查询条件有为空的现象,查询结果就会出现好多个

“”(引号),系统就会报错,那怎么办呢?

    添加下面代码,对查询条件进行判断:

    如果4为空,只显示符合第1行查询条件的结果

    如果4不为空,5为空,只显示符合1、2组合查询的结果

    如果4、5均不为空,显示1、2、3组合查询的结果

If Combo7.Text = "" Then
txtSQL = txtSQL & strA
ElseIf Not Combo7.Text = "" Then
txtSQL = txtSQL & strA & strB
ElseIf Not Combo7.Text = "" And Combo8.Text = "" Then
txtSQL = txtSQL & strA & strB & strC
End If    再此,非常感谢小胖的帮助
    在验收项目的时候,师傅提到了如果字段名为日期,那么在要查询的内容这一栏还要手动输入日期是不是太麻烦呢?所以我们可以在要查询内容这个text控件后再加一个日期控件,当我们输入字段名之后判断他是否为日期格式,如果是,就可以直接选择日期,这样是不是更完美了呢!得意

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: