机房管理系统(二) 之组合查询

前言

机房已经接近尾声了,目前进行的是组合查询,进行这个窗体的确费了很大的力气, 但是同过向师哥师姐和我们13 期的小伙伴学习,问题得到了逐个突破

构架问题

1.1 窗体的构建

           窗体如下所示,

         从图中我们知道,条件的个数是通过组合关系来实现调控的,而且我们也需要知道这个窗体是和数据库中line_info  相关连的,那么条件就会从这个表中的字段中选择。

1.2  代码的实现

代码如下
Private Sub Form_Load()
   With mylexGrid1
   .Rows = 1
        .CellAlignment = 4
        .TextMatrix(0, 0) = "卡号"
        .TextMatrix(0, 1) = "姓名"
        .TextMatrix(0, 2) = "上机日期"
        .TextMatrix(0, 3) = "上机时间"
        .TextMatrix(0, 4) = "下机时间"
        .TextMatrix(0, 5) = "下机日期"
        .TextMatrix(0, 6) = "消费金钱"
        .TextMatrix(0, 7) = "余额"
        .TextMatrix(0, 8) = "状态"

Combo1.AddItem "卡号"
Combo1.AddItem "学号"
Combo1.AddItem "上机时间"
Combo1.AddItem "下机时间"
Combo1.AddItem "上机日期"
Combo1.AddItem "下机日期"
Combo1.AddItem "消费金额"
Combo1.AddItem "余额"
Combo1.AddItem "状态"


Combo3.AddItem "卡号"
Combo3.AddItem "学号"
Combo3.AddItem "上机时间"
Combo3.AddItem "下机时间"
Combo3.AddItem "上机日期"
Combo3.AddItem "下机日期"
Combo3.AddItem "消费金额"
Combo3.AddItem "余额"
Combo3.AddItem "状态"


Combo5.AddItem "卡号"
Combo5.AddItem "学号"
Combo5.AddItem "上机时间"
Combo5.AddItem "下机时间"
Combo5.AddItem "上机日期"
Combo5.AddItem "下机日期"
Combo5.AddItem "消费金额"
Combo5.AddItem "余额"
Combo5.AddItem "状态"


Combo2.AddItem "="
Combo2.AddItem "<"
Combo2.AddItem ">"
Combo2.AddItem "<>"


Combo4.AddItem "="
Combo4.AddItem "<"
Combo4.AddItem ">"
Combo4.AddItem "<>"


Combo6.AddItem "="
Combo6.AddItem "<"
Combo6.AddItem ">"
Combo6.AddItem "<>"


Combo7.AddItem "与"
Combo7.AddItem "或"

Combo8.AddItem "与"
Combo8.AddItem "或"


Combo1.Text = ""
Combo2.Text = ""
Combo3.Text = ""
Combo4.Text = ""
Combo5.Text = ""
Combo6.Text = ""
Combo7.Text = ""
Combo8.Text = ""

Text1.Text = ""
Text2.Text = ""
Text3.Text = ""



Combo3.Enabled = False
Combo4.Enabled = False
Combo5.Enabled = False
Combo6.Enabled = False
Combo7.Enabled = False
Combo8.Enabled = False
End With


End Sub
这一段代码是初始化一些控件,使mylexgrid1 的第一行显示出“卡号,姓名,上机日期,上机时间,下机时间,等
”,使combo 控件添加一些选择项,使第一条件完成时候能够让第二条件输入开放(可以输入)。

解决相关问题

2.1 识别问题

         这里说的识别问题指的是,select * line_info where   "学号"        不能识别问题,我们知道“学号”这里本该是   studentno , 所以会出现识别问题。
         解决方法: 调用一个函数,使得能够使  汉字与 表中字段进行转化。代码如下
Public Function field(a As String) As String
'定义一个函数过程
    Select Case a         '字段名与数据库中的列名相对应
            Case "学号"   '学生基本信息维护要用到的字段
        field = "studentno"
            Case "姓名"
        field = "studentName"
            Case "卡号"
        field = "cardno"
            Case "金额"
        field = "cash"
            Case "系别"
        field = "department"
            Case "年级"
        field = "grade"
            Case "班级"
        field = "class"
            Case "性别"
        field = "sex"
            Case "状态"
        field = "status"
            Case "备注"
        field = "explain"
            Case "类型"
        field = "type"
            Case "日期"
        field = "date"
            Case "时间"
        field = "time"

            Case "上机日期"     '学生上机统计信息维护
        field = "ondate"
            Case "上机时间"
        field = "ontime"
            Case "下机日期"
        field = "offdate"
            Case "下机时间"
        field = "offtime"
            Case "消费金额"
        field = "consume"
            Case "余额"
        field = "cash"


            Case "教师"      '操作员工作记录  worklog
        field = "UserID"
            Case "注册日期"
        field = "LoginDate"
            Case "注册时间"
        field = "LoginTime"
            Case "注销日期"
        field = "LogoutDate"
            Case "注销时间"
        field = "LogoutTime"
            Case "机器名"
        field = "computer"

            Case "或"
        field = "or "
            Case "与"
        field = "and "
   End Select
End Function
这样就解决了这一个问题!

2.2  组合关系的实现

   相关代码:
                        txtSQL = txtSQL & " " & field(Combo7.Text) & field(Combo3.Text) & Combo4.Text & Trim(Text2.Text)
                        Set mrc = ExecuteSQL(txtSQL, msgtext)

这里的txtSQL是指的是 select * from line_info where cardno= 2016 and studentno = 11
 通过一个and  连接了俩个选择条件,实现了功能!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值