此查询将用于更新与其匹配的多行...但是由于无法循环执行而无法执行,最终仅添加了第一行匹配的行。
rs.Open "SELECT tbl_club_member.Mid, tbl_club_member.BlockFlat, [tbl_block_flat.Size] FROM tbl_club_member INNER JOIN tbl_block_flat ON tbl_club_member.BlockFlat = tbl_block_flat.BlockFlat WHERE ((Mid(tbl_block_flat.BlockFlat,1,2) Like '" & Me.Text2 & "') And ((tbl_club_member.MemberType) like 'Owner'));", cn, adOpenForwardOnly, adLockReadOnly
MemberID = rs.Fields(0)
Charge = rs.Fields(2) * Me.Text1
With rs
.Fields(0) = NextID 'tid
.Fields(1) = CurDt 'tdate
.Fields(2) = 72 'accid
.Fields(3) = MemberID 'memberid
.Fields(8) = Charge 'amount
.Fields(9) = Combo2.Text 'particular
.Fields(10) = userx
.Fields(11) = Now()
.Update
End With
rs.MoveLast
Exit Sub
这是RecordSet通常完成的操作:
Private Sub Test()
Do While Not rs.EOF
rs.Fields(0) = NextID 'tid
rs.Fields(1) = CurDt 'tdate
rs.Fields(2) = 72 'accid
rs.Fields(3) = MemberID 'memberid
rs.Fields(8) = Charge 'amount
rs.Fields(9) = Combo2.text 'particular
rs.Fields(10) = userx
rs.Fields(11) = Now()
rs.Update
rs.MoveNext
Loop
End Sub