Muốn lưu toàn bộ các records mới nhập thì dùng Do Until..Loop. Còn công thức tính tồn kho đối với unbound form thì cũng dùng cách khai báo như code của cmdSave và setvalue cho textbox Tồn Kho.
---------------
Private cmdSave_Click()
Dim db as DAO.Database
Dim rs1 as DAO.Recordset, rs2 as DAO.Recordset
Set db=currentDb
Set rs1 = db.OpenRecordset ("Dsthuoc_kho", dbOpenDynaset)
Set rs2 = db.OpenRecordset ("XuatKhoTam", dbOpenDynaset) '---> Table tạm để lưu dữ liệu nhập vào cho unbound form
If rs2.Recordcount <> 0 then
rs2.MoveFirst
End if
Do Until rs2.EOF
With rs1
.AddNew
!SoLuong=rs2!txtSoLuong
!slban=rs2!txtslban
!........ = rs2!...
.Update
rs2.MoveNext
Loop
End with
rs1,Close
rs2.Close
Set rs1=nothing
Set rs2=nothing
End Sub
-----------------------
Private slban_AfterUpdate()
Dim tonkho as Integer
tonkho=Nz(Dlookup("soluong","Dsthuoc_kho","mathuoc = '" & Me.cboMaThuoc & "'") ,0) '--> cboMaThuoc là text box mã thuốc trong subform
If slbancu <> 0 Then
Me.soluong = tonkho + slbancu - Me.slban
slbancu = Me.slban
Else
Me.soluong = tonkho - Me.slban
slbancu = Me.slban
End if
End Sub