机房收费系统-组合查询
程序员文章站
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
组合查询的核心内容就这么多吧,我用了两天的时间去弄这个,感觉收获还是很多的,虽然有的内容是看了涛哥的博客,但是还是要去自己思考的,因为只有自己思考之后,再去实践,收获到的内容才真正是自己的,我会继续努力的,不断前进。
上一篇: 我对SpringDAO层支持的总结
下一篇: 分库分表之后分布式如何保证ID全局唯一性