机房那些事儿---组合查询
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控件后再加一个日期控件,当我们输入字段名之后判断他是否为日期格式,如果是,就可以直接选择日期,这样是不是更完美了呢!得意
下面,我们先来简单分析一下这个窗口
一.判断第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控件后再加一个日期控件,当我们输入字段名之后判断他是否为日期格式,如果是,就可以直接选择日期,这样是不是更完美了呢!得意
相关文章推荐
- 机房收费系统——组合查询
- vb.net机房收费系统—组合查询的实现
- 机房重构之组合查询
- 模板方法模式——【VB.NET机房收费系统(组合查询)】
- 机房重构--组合查询
- 机房收费系统——组合查询
- 机房收费系统颗粒大归仓之-------组合查询
- 【机房收费系统】组合查询
- 【机房收费系统】VB中的组合查询探索
- 机房重构组合查询
- 机房收费系统之 组合查询
- 【机房个人重构】组合查询--模板方法
- 机房收费系统简单的逻辑(下)组合查询我不愁
- 机房收费系统之组合查询
- 机房收费系统(五)-组合查询之局部最优
- 机房重构组合查询(下)
- 机房重构——组合查询
- 机房收费系统之—组合查询
- 机房之组合查询1
- 组合查询——机房收费系统