机房收费系统做到全部强制下机时,需要将正在上机表的所有用户记录删除,并且将下机所有用户的下机信息添加到上下机记录表中。
单个记录删除和添加这个很好实现,但是成批量的删除和添加记录确实很让我困扰。成批量的话自然就想到了数组,以下就是我利用数组来实现的代码。
'=========首先先将正在上机表里的记录删除,同时将上机卡号的所有用户信息输出给数组变量
txtSQL = "select * fromOnline_Info "
Set mrcOnline = ExecuteSQL(txtSQL,MsgText)
a = mrcOnline.RecordCount
Do While Not mrcOnline.EOF
If mrcOnline.RecordCount = 0 Then
Exit Do
Else
For i = 1 To a
mrcOnline.MoveFirst
StrCardId(i) =Trim(mrcOnline.Fields(0))
StrName(i) =Trim(mrcOnline.Fields(1))
StrDate(i) =Trim(mrcOnline.Fields(2))
StrTime(i) =Trim(mrcOnline.Fields(3))
mrcOnline.Delete
Next i
End If
Loop
MsgBox "全部下机成功!", vbOKOnly +vbExclamation, "提示"
MSHFlexGrid1.Clear
'========往余额表里添加所有用户的下机余额
For i= 1 toa
txtSQL = "select * fromRemainMoney_Info where Card_ID='" & StrCardId(i) & "'"
Set mrcRemainMoney =ExecuteSQL(txtSQL, MsgText)
mrcRemainMoney.MoveLast
StrRemainMoney(i) =mrcRemainMoney.Fields(1)
NowStrRemainMoney(i) =Val(StrRemainMoney(i)) - Val(StrCostMoney(i))
mrcRemainMoney.MoveLast
mrcRemainMoney.AddNew
mrcRemainMoney.Fields(0) =StrCardId(i)
mrcRemainMoney.Fields(1) =NowStrRemainMoney(i)
mrcRemainMoney.Update
mrcRemainMoney.Close
'=========往上下机记录表里添加所有用户的下机记录信息
txtSQL = "select * fromLineRecord_Info " 'where Card_ID='" & strcardid(i) &"'"
Set mrcLine = ExecuteSQL(txtSQL,MsgText)
'往记录表里添加信息
mrcLine.AddNew
mrcLine.Fields(0) = StrCardId(i)
mrcLine.Fields(1) = StrName(i)
mrcLine.Fields(2) = StrDate(i)
mrcLine.Fields(3) = StrTime(i)
mrcLine.Fields(4) = StrEndDate
mrcLine.Fields(5) = StrEndTime
mrcLine.Fields(6) = StrCostMoney(i)
mrcLine.Fields(7) =NowStrRemainMoney(i)
mrcLine.Fields(8) = "强制下机"
mrcLine.Update
mrcLine.Close
Next i
欢迎大家多提意见。