在上一篇博客机房收费系统(一)——优化总结中提到一样的功能在这个窗体中可以实现但是在另外一个窗体中却是问题百出,一些小的细节有时常常注意不到,缺少这个内容的整体流程。现在对于有关查询功能的整个流程和注意事项。
一.查询分析
二、条件约束
1.终止日期要小于起始日期
2.每次查询时MSFlexGrid表格的内容不可以出现叠加
3.表格大小的设置
4.输入内容的限制,例:卡号只能输入数字等
三、将流程思路和条件约束转化成代码
'查询
Private Sub cmdInquire_Click()
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
MSFlexGrid1.Rows = 1 '使每次查询时MSFlexGrid表格的内容不可以出现叠加
'选择查询条件
'先判断卡号是否为空
If Not testtxt(txtCardNo.Text) Then
MsgBox "请先输入卡号!", vbOKOnly + vbExclamation, "提示"
txtCardNo.SetFocus
cmdExcel.Enabled = False
Else
'判断该卡号是否注册
txtSQL = "select * from student_Info where cardNo = '" & txtCardNo.Text & " '"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'查询条件不可行
If mrc.EOF Then
MsgBox "该卡号没有注册!", vbOKOnly, "提示"
txtCardNo.Text = "" '重新选择查询条件
txtCardNo.SetFocus
cmdExcel.Enabled = False '导出Excel按钮不可用
Exit Sub
End If
mrc.Close
'查询条件可行
txtSQL = "select * from Recharge_Info where cardNo = '" & txtCardNo.Text & " ' "
Set mrc = ExecuteSQL(txtSQL, MsgText)
cmdExcel.Enabled = True '导出Excel按钮可用
'显示内容
Do While Not mrc.EOF
With MSFlexGrid1
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(2))
.TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(3))
.TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(4))
.TextMatrix(.Rows - 1, 3) = Trim(mrc.Fields(5))
.TextMatrix(.Rows - 1, 4) = Trim(mrc.Fields(6))
MSFlexGrid1.ColAlignment(-1) = 2
mrc.MoveNext
End With
Loop
mrc.Close
End If
End Sub
'限制条件卡号的输入
Private Sub txtCardNo_KeyPress(KeyAscii As Integer)
KeyAscii = Number_Only(KeyAscii)
End Sub
四、总结
对于一个程序有一个宏观的把控是很重要的,同时对于相同功能的分析和整理更有助于避免我们在一些细节上出现的问题。总体来说,无论我们是做什么,分析思路+要注意的细节会是我们事半功倍。