日期:2014-05-16  浏览次数:20426 次

机房收费系统难点总结(2)

3,组合查询:设计到“操作员”的三个权限,也就是实现三个窗体功能,做出一个来剩下两个粘贴复制再修改一下就OK了。一开始觉得很简单就按着自己的想法做,但是试了又试怎么也实现不了。后来了解到,要想实现这个组合查询,需要一个重要属性——Tag

 

三个组合查询分别是:学生基本信息维护;学生上机统计信息查询;操作员工作记录。

 

它们的窗体设计一样,如下图

 

以学生基本信息维护为例:

字段名:    

 

操作符:

 

 

组合关系:

 

例如:第一个字段名选择“卡号”,第一个操作符选择“=”,查询内容为“1”(即查询卡号为“1”的学生的信息),第一个关系组合框选择“与”;第二个字段选择“学号”,第二个操作符选择“>”,查询内容为“2”(即查询学号为“2”的学生的信息),第二个关系组合框不做选择。

综上,查询条件为:卡号=1 与 学号>2的所有学生的信息。

 

所有学生的信息都存在,Student_info表中。

 

在写Sql查询语句时,如何将字段名组合框中所选内容表示为表中的字段名,将关系组合框中所选内容表示为逻辑运算符(And,Or)。这时候就用到了,容器Tag。先将:表中字段名、操作符、逻辑运算符存储,等到Sql查询时,释放。当然,存储时也要一一对应(例如:当窗体字段名选择为“卡号”时,则容器Tag存储“CardNo”;关系组合框选择“或”时,容器Tag存储“Or”)

 

具体实现,以查询第一个条件为例:

'判断第一个查询条件

     If comboField1.Text = "卡号"Then          '判断第一个字段名的选择,并存储

       comboField1.Tag = "cardno"

     End If

                   

     If comboField1.Text = "学号" Then

       comboField1.Tag = "studentno"

     End If