您的位置:首页 > 其它

第一次机房收费系统—信息的输入与输出

2017-12-03 09:58 411 查看
  最近看了混沌大学的课程受益颇深,作为一名小编,知识只有不断的总结才是自己的,看这门课程的时候李善长教授提出了芒格的观点,最近几篇博客我也在一直提这个观点,无论做什么事情一定要找到所做事情背后那个最简单,最基本的那个道理。然后按照这个道理去做就可以了。

 机房收费系统背后那个最基本最简单的道理是什么呢。我认为它就是信息的输入与输出。无论是什么窗体都离不开这两点,注册、添加信息、基本数据的设定等以及各种信息的查询。都是信息输入到表、信息从表中输出这两个过程。分开窗体,对信息的输入与输出进行逐步分解。

 重点提示:(导图)



  





窗体例子:

  










  

  我们,明显可以看出卡号为001的学生已经注销了自己卡号,但是在查询余额的时候明显的还能看到此人的信息。明显信息赋值时对个别卡号没有进行限制。希望小伙伴们不要学习我。

 解决方法:

txtsql = "select * from student_Info where CardNo='" & CardNo.Text & "'and status= '" & "Trim(不使用)" & "'"
Set mrc = ExecuteSQL(txtsql, msgText)

If mrc.EOF = True Then
MsgBox "卡号不存在或者卡号已经注销,请重新输入!", 48, "警告"
CardNo.SetFocus
CardNo.Text = ""
mrc.Close

Else
'将数据库中的数据赋值给文本框
StudentNo.Text = mrc.Fields(1)
StudentName.Text = mrc.Fields(2)
Sex.Text = mrc.Fields(3)
Department.Text = mrc.Fields(4)
Grade.Text = mrc.Fields(5)
Class.Text = mrc.Fields(6)
Cash.Text = mrc.Fields(7)
StaCondition.Text = mrc.Fields(10)
'关闭数据集对象
mrc.Close
End If




1.信息的输出:

txtsql = "select * from student_Info where CardNo='" & CardNo.Text & "'"
Set mrc = ExecuteSQL(txtsql, MsgText)
If mrc.EOF = True Then
MsgBox "卡号不存在,请重新输入!", vbOKOnly + vbExclamation, "警告"
CardNo.SetFocus
Else
'将数据库中的数据赋值给文本框
StudentNo.Text = mrc.Fields(1)
StudentName.Text = mrc.Fields(2)
Sex.Text = mrc.Fields(3)
Department.Text = mrc.Fields(4)
Grade.Text = mrc.Fields(5)
Class.Text = mrc.Fields(6)
StaCondition.Text = mrc.Fields(7)
RemarkComment.Text = mrc.Fields(8)
Cash.Text = mrc.Fields(9)
'关闭数据集对象
mrc.Close
End If


txtSQL = "select * from User_Info where Level='" & comboUserBank & "'"
'在表User_Info中查找列Level中与VB该窗体comboLevel相对应的某整列数据
Set mrc = ExecuteSQL(txtSQL, Msgtext)
'执行SQL语句

With MSFlexGrid1      '填写表头
.Rows = 1
.CellAlignment = 4
.TextMatrix(0, 0) = "用户名"
.TextMatrix(0, 1) = "姓名"
.TextMatrix(0, 2) = "开户人"

Do While Not mrc.EOF       '遍历所有记录,填入控件
.Rows = .Rows + 1      '循环添加记录
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = Trim(mrc.Fields(0))
' .Rows - 1是横坐标,与上面.Rows = 1代表的有所不同
' .Rows = 1是指控件加载时总行数为1行(控件行数最小为1)
' 表示坐标时,我们都知道是从(0,0)开始,因此.Rows - 1只是代表坐标从头开始,与控件加载时设定的行数无关
.TextMatrix(.Rows - 1, 1) = Trim(mrc.Fields(3))
.TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(4))
mrc.MoveNext
Loop
End With
mrc.Close






2.信息的输入:

txtsql = "select * from student_Info"
Set mrc = ExecuteSQL(txtsql, MsgText)
'判断是否重复记录
If Trim(mrc.Fields(0)) = Trim(CardNo.Text) Then
MsgBox "该卡号已经注册,请再次注册!", 48, "警告"
CardNo.SetFocus
CardNo.Text = ""
Exit Sub
Else
'添加新纪录
mrc.AddNew
mrc.Fields(0) = Trim(CardNo)
mrc.Fields(1) = Trim(StudentNo)
mrc.Fields(2) = Trim(StudentName)
mrc.Fields(3) = Trim(ComSex)
mrc.Fields(4) = Trim(Department)
mrc.Fields(5) = Trim(Grade)
mrc.Fields(6) = Trim(Class)
mrc.Fields(7) = Trim(txtCash)
mrc.Fields(8) = Trim(Annotation)
mrc.Fields(9) = Trim(txtUserID)
mrc.Fields(10) = Trim(ComStatus)
mrc.Fields(14) = Trim(comStyle)
'更新数据库
mrc.Update
Me.Hide
MsgBox "注册成功!", vbOKOnly + vbExclamation, "注册用户"

  虽然这篇博客大家可能一看就懂,但是我觉得很有必要总结一下。最近看小伙伴们的博客,我原来一直认为很简单的代码,但是用的时候却无从下手,无论什么问题都要学会总结,然后去实践。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: