机房收费系统的组合查询大体上概括一下就是:一个或者多个条件下对信息进行查找,找到了则显示出来,没找到给个提示。说总是简单的,当下手做的时候,分析起来不如说的轻松。
按照程序运行的顺序走
窗体加载:
添加下拉项,设置界面框的可编辑性,让MSFlexGrid控件显示标题。
组合界面:
窗体加载的时候,只有第一行是可操作的。那么要想让下面的能够操作怎么办呢?
这就需要我们用代码编辑组合关系的组合框。如果组合关系中有内容的话,让对应的下一行能都操作,这两行就会在查询的时候产生组合关系。第三行也一样。
学生基本信息维护,那么涉及到的数据库表就是学生表即Student表。
我们在字段名的组合框中添加的下拉项都是汉语的,如果要想作为一个条件进行查找的话,那么它必须能够被数据库所识别。所以这里就需要一个函数将字段名组合框中的每一个汉语内容对应到数据库中字段名的英文单词。同样组合关系组合框中的汉语内容也需要定义一个函数转变成数据库和计算机能够识别的语言。
例如关系组合框:
<span style="font-size:18px;">'定义一个函数将汉字的组合关系转化为计算机语言,数据库能够识别。
Private Function GetString(logiczuhe As String) As String
Select Case logiczuhe
Case "或"<span style="white-space:pre"> </span>'当输入框的内容是或的时候,表示组合框的Text属性经过函数变化后传进来的是"or"
GetString = "or"
Case "与"
GetString = "and"
End Select
End Function</span>
最后看三层关系
分为三层,我们一层一层的来
如果第二行和第三行字段名组合框不可编辑。
我们保证第一行的所有条件内容不能为空。
定义一条SQL语句,把界面上选择的条件都添加到SQL语句当中,然后执行这条SQL语句
在Student表中遍历,看是否有符合该语句的内容。
如果没有,
那么第一行的所有内容清空,焦点给第一个需要输入内容的框中。等待重新输入。
如果有
用一个循环语句,将每一条满足的记录都显示到MSFlexGrid控件中。
这时候,我们的第一层查询就算是结束了。
如果选择了第一个组合关系的组合框,那么第二行就会处于编辑状态。
这是我们做一个判断,如果第三行字段名组合框不可编辑,那么
保证第一行和第二行的内容都不能为空。
定义一个SQL语句,把第一个行的条件和第二行的条件以及两行条件的组合关系都添加到从Student表中查找信息的SQL语句。然后执行该SQL语句
在Student表中遍历,看是否符合该语句的内容
如果没有,
给出提示。不用清空所有的信息框。
如果有
用一个循环语句,将满足这两行条件的记录都显示到MSFlexGrid控件中,两层查询就结束了
第三层查询不同之处就是SQL语句中又多了一行需要满足的条件。
其他跟两层类似。
有了思路,代码部分大多都是都是重复的,有的时候我们分析的会感觉一团浆糊,这时候我们要学会交流,把自己的想法说给自己的同学,师父,也许通过这样的交流,能够收获到让自己豁然开朗的结果。要有耐心去分析,这是一个需要静心的过程。