机房收费系统-组合查询

来源:互联网 发布:数码宝贝网络侦探智力 编辑:程序博客网 时间:2024/04/29 10:25

  • 逻辑关系
  • 代码实现
  • 控件优化
    • 代码
  • 细节优化
    • DTPicker控件
    • flexgrid控件

逻辑关系

这里写图片描述

代码实现

'查询语句txtSQL = "select * from line_info where "'判断第一行信息是否填写完整If Trim(Combo1(0).Text) = "" Or Trim(Combo2(0).Text) = "" Or Trim(a) = "" Then    MsgBox "请填写第一行信息!", vbOKOnly, "提示 "End If'查询第一行信息txtSQL = txtSQL & field(Combo1(0).Text) & Combo2(0).Text & "'" & Trim(a) & "'"    '判断组合关系1是否为空    If Trim(Combo3(0)) <> "" Then        If Combo1(1).Text = "" Or Combo2(1).Text = "" Or Trim(b) = "" Then            MsgBox "请填写第二行信息!", vbOKOnly, "提示"            Exit Sub        Else            '查询第一行和第二行            txtSQL = txtSQL & field(Combo3(0)) & " " & field(Combo1(1).Text) & Combo2(1).Text & "'" & Trim(b) & "'"        End If    End If                    '判断组合关系2是否为空            If Combo3(1) <> "" Then                '判断第三行信息是否为空                If Combo1(2).Text = "" Or Combo2(2).Text = "" Or Trim(c) = "" Then                    MsgBox "请填写信息!", vbOKOnly, "提示"                Else                '查询三行语句                    txtSQL = txtSQL & field(Combo3(1)) & " " & field(Combo1(2).Text) & Combo2(2).Text & "'" & Trim(c) & "'"                End If            End If'执行查询语句    Set mrc = ExecuteSQL(txtSQL, MsgText)    '判断是否有查询信息    If mrc.BOF Then        MsgBox "查询不到此信息,请重新输入!", vbOKOnly + vbExclamation, "信息提示"        Exit Sub    End If

控件优化

  因为要查询的内容包括了时间和日期,所以在这里就不能只是一个文本框,还要加上时间和日期的DTPicker控件,在VB -工程-引用-MicrosoftWindows Common Controls-2.6.0
  但是在加了控件之后就要分清什么时候用DTPicker的值,什么时候用textbox的值

代码

  判断如果选择的是时间或日期,那么选择的值是DTPicker的值,如果不是,则使用textbox的值

    Private Sub cmdinquire_Click()If Combo1(0) = "上机时间" Or Combo1(0) = "上机日期" Or Combo1(0) = "下机时间" Or Combo1(0) = "下机日期" Thena = DTP1.ValueElsea = Text1.TextEnd IfIf Combo1(1) = "上机时间" Or Combo1(1) = "上机日期" Or Combo1(1) = "下机时间" Or Combo1(1) = "下机日期" Thenb = DTP2.ValueElseb = Text2.TextEnd IfIf Combo1(2) = "上机时间" Or Combo1(2) = "上机日期" Or Combo1(2) = "下机时间" Or Combo1(2) = "下机日期" Thenc = DTP3.ValueElsec = Text3.TextEnd IfEnd Sub

细节优化

DTPicker控件

  因为在最开始不知道选用的是不是时间,所以需要隐藏DTPicker控件

flexgrid控件

  因为时间和日期的长度比较长,经常会有显示不全的情况,所以要设置一下某一列的宽度

myFlexgrid.ColWidth(2) = 1600

  设置某一列居中对齐

myFlexgrid.ColAlignment(1) = flexAlignCenterCenter

  组合查询的核心内容就这么多吧,我用了两天的时间去弄这个,感觉收获还是很多的,虽然有的内容是看了涛哥的博客,但是还是要去自己思考的,因为只有自己思考之后,再去实践,收获到的内容才真正是自己的,我会继续努力的,不断前进。

原创粉丝点击