Thủ Thuật Access
Hướng Dẫn Demo Tính Tồn Theo Ngày - Phiên bản có thể in

+- Thủ Thuật Access (http://thuthuataccess.com/forum)
+-- Diễn đàn: Access Nâng Cao (http://thuthuataccess.com/forum/forum-11.html)
+--- Diễn đàn: Thư Viện Ứng Dụng (http://thuthuataccess.com/forum/forum-19.html)
+--- Chủ đề: Hướng Dẫn Demo Tính Tồn Theo Ngày (/thread-10563.html)



Demo Tính Tồn Theo Ngày - Xuân Thanh - 09-07-18

Có rất nhiều bạn thắc mắc về tính tồn theo ngày (Tồn Quỹ, Tồn Kho...). Có cách giải quyết bằng query như ongke0711 đã giới thiệu. Hôm nay giới thiệu với các bạn bản demo này dùng VBA để tính vì tôi thích dùng VBA hơn do tính bảo mật cao của nó.
1/ Giả sử ta có một Database TonQuy có table tblThuChi gồm các field sau
- NgayChungTu, Date
- TienThu, Number
- TienChi, Number

2/ Ta tao thêm table tblTon để chứa dữ liệu trả về của hàm TinhTon viết trong modul gồm các field sau
- NgayChungTu, Date
- TonDau, Number
- TienThu, Number
- TienChi, Number
- TonCuoi, Number
Ghi Chú : Nhớ set Default Value cho các textbox dạng số là 0 nếu không sẽ bị lỗi

3/Mở modul mới và chép hàm này vô
Mã PHP:
Function TinhTon(TuNgay As DateDenNgay As Date)
   Dim TC As Recordset
   Set TC 
CurrentDb.OpenRecordset("tblThuChi"dbOpenTable)
   Dim Ton As Recordset
   Set Ton 
CurrentDb.OpenRecordset("tblTon"dbOpenTable)
'Xoa Table Ton
   If Ton.RecordCount > 0 Then CurrentDb.Execute "Delete * From tblTon"
'
Tinh Ton Dau
   Dim So 
As Long
   So 
0
   TC
.MoveFirst
   Do Until TC
.EOF
       So 
So TC!TienThu TC!TienChi
       TC
.MoveNext
       If TC
!NgayChungTu >= TuNgay Then Exit Do
   Loop
'Tinh Thu Chi Ton Trong Ngay
   Do Until TC.EOF
       If TC!NgayChungTu >= TuNgay And TC!NgayChungTu <= DenNgay Then
           Ton.AddNew
           Ton!NgayChungTu = TC!NgayChungTu
           Ton!TonDau = So
           Ton!TienThu = TC!TienThu
           Ton!TienChi = TC!TienChi
           Ton!TonCuoi = Ton!TonDau + Ton!TonCuoi + TC!TienThu - TC!TienChi
           So = Ton!TonCuoi
           Ton.Update
       End If
       TC.MoveNext
   Loop
   TC.Close: Ton.Close
End Function 

4/ Tạo môt report rptThuChi có nguồn là tblTon
5/ Tạo một from frmBaoCao, có 2 textbox txtTuNgay, txtDenNgay (nhớ format cho nó để hiển thi ngày tháng chuẩn dạng dd/mm/yyyyy) và một commandbutton cmdBaoCao với
Mã PHP:
Private Sub cmdBaoCao_Click()
      Call TinhTon(Me.txtTuNgay,Me.txtDenNgay)
      Docmd.OpenReport "rptThuChi"acViewNormal 
End Sub 

Xem bản demo kèm theo. Trong bản demo chưa có form, các bạn tự tạo theo hướng dẫn trên
Thân mến


RE: Demo Tính Tồn Theo Ngày - tt1212 - 14-07-18

Để tính tồn kho nhanh và chính xác tôi khuyên các bạn sử dụng lện SQL trong access