欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机房收费系统-组合查询

程序员文章站 2022-05-03 17:10:52
...

逻辑关系

机房收费系统-组合查询

代码实现

'查询语句
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) = "下机日期" Then
a = DTP1.Value
Else
a = Text1.Text
End If

If Combo1(1) = "上机时间" Or Combo1(1) = "上机日期" Or Combo1(1) = "下机时间" Or Combo1(1) = "下机日期" Then
b = DTP2.Value
Else
b = Text2.Text
End If

If Combo1(2) = "上机时间" Or Combo1(2) = "上机日期" Or Combo1(2) = "下机时间" Or Combo1(2) = "下机日期" Then
c = DTP3.Value
Else
c = Text3.Text
End If
End Sub

细节优化

DTPicker控件

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

flexgrid控件

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

myFlexgrid.ColWidth(2) = 1600

  设置某一列居中对齐

myFlexgrid.ColAlignment(1) = flexAlignCenterCenter

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

相关标签: 组合查询