这样不可以吗?
注:zn为数据源名,T1和T2分别为这两个表的名字
Option Explicit
Dim conn As New ADODB.Connection
Dim Rs1 As New ADODB.Recordset
Dim Rs2 As New ADODB.Recordset
Private Sub Command1_Click()
conn.Open "dsn=zn"
Dim num As Integer
Dim tt As String
Rs1.Open "t1", conn, adOpenDynamic, adLockBatchOptimistic
Rs1.MoveFirst
Do While Not Rs1.EOF
Rs2.Open "select sum(迟到) from t2 where 编号='" & Rs1(0) & "'", conn, adOpenDynamic, adLockBatchOptimistic
Rs2.MoveFirst
If IsNull(Rs2(0)) Then
num = 0
Else
num = Rs2(0)
End If
Rs1(2) = num
Rs1.UpdateBatch adAffectCurrent
Rs1.MoveNext
Rs2.Close
Loop
修改一下
update A表 set A表.次数=DD.TotalCD
from A表
inner join
(
select AA.编号,sum(迟到) as TotalCD from A表 as AA
inner join B表 as BB
on AA.编号=BB.编号
group by AA.编号,AA.姓名
) as DD
on A表.编号=DD.编号
一句SQL搞定:
update A表 set A表.次数=DD.TotalCD
from A表
inner join
(
select AA.编号,isNull(sum(迟到),0) as TotalCD from A表 as AA
left join B表 as BB
on AA.编号=BB.编号
group by AA.编号,AA.姓名
) as DD
on A表.编号=DD.编号