机房收费系统---多表操作
在进行机房收费系统的时候,里面有不少的操作。需要同时操作多个数据库。
比如,用户的注册操作。在用户注册的同时,分别执行两个操作。
1.把用户的信息写入到学生信息表
2.把用户的充值信息写入到数据库的充值记录表中
面对同一个操作,进行多步数据库的操作。有两种可行方案:
第一:
进行充值操作的时候,需要把充值信息写入到充值记录表,也要把学生信息的金额数进行更改。
Private Sub cmdOk_Click() Dim txtSQL As String Dim MsgText As String Dim mrc As ADODB.Recordset '用于记录学生信息表的结果集 Dim mrcc As ADODB.Recordset '用于记录充值记录表 的结果集 Dim oldCash As Variant Dim newCash As Variant If testNull(txtCardNo.Text) Then MsgBox "请输入卡号!", vbOKOnly + vbExclamation, "警告" Exit Sub End If '首先检查,输入的卡号是否 注册 txtSQL = "select * from student_Info where cardNo='" & txtCardNo.Text & "'" Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.BOF Then MsgBox "这个卡号未被注册!", vbOKOnly + vbExclamation, "警告" Exit Sub End If '对充值金额的要求 限定 If testNull(txtCash.Text) Then MsgBox "请输入充值金额!", vbOKOnly + vbExclamation, "警告" Exit Sub End If If Val(txtCash.Text) < 5 Then MsgBox "充值金额最少为5元!", vbOKOnly + vbExclamation, "警告" Exit Sub End If txtSQL = "select * from Recharge_Info" Set mrcc = ExecuteSQL(txtSQL, MsgText) '把充值的信息 写入 充值信息表中。用于做记录 mrcc.AddNew mrcc.Fields(1) = mrc.Fields(1) mrcc.Fields(2) = mrc.Fields(0) mrcc.Fields(3) = Trim(txtCash.Text) mrcc.Fields(4) = Trim(Date) mrcc.Fields(5) = Trim(Time) mrcc.Fields(6) = UserID ’操作人的姓名 mrcc.Fields(7) = "未结账" mrcc.Update mrcc.Close '更新student表,把学生 卡上的钱数更改 oldCash = mrc.Fields(8) '把学生充值前的 钱取出来 mrc.Fields(8) = oldCash + txtCash.Text newCash = mrc.Fields(8) '把学生充值后的 钱取出来 mrc.Update mrc.Close '把冲值后的信息显示出来 rcCardNo.Text = txtCardNo.Text rcOldCash.Text = oldCash rcNewCash.Text = newCash rcDate.Text = Date rcTime.Text = Time rcTeacher.Text = UserID MsgBox "充值成功!", vbOKOnly + vbExclamation, "提示"End Sub