(11-04-13, 08:49 AM)muaphonui_2010 Đã viết: Hình như code trên thiếu 1 điều kiện ngày áp dụng < ngày chứng từ , Vì nếu như vậy thì nó có thể lấy giá lớn hơn ngày chứng từ. Không biết đúng ko nữa.
Nó ở đây nè bạn :
Mã:
If rs!NgayApDung < dNgay Then
Gia = rs!Gia: Thay = True
Else
Exit Do
End If
Giải thích : Code trên lọc trong table tblDSGia có MaSP = MaSP đang xét(sSP). Xét duyệt table trên sau khi sort NgayApDung tăng dần. Khi NgayApDung < NgayChungTu(dNgay) thì lấy Giá tại trường Gia gán cho biến Gia. Khi NgayApDung > NgayChungTu thì không duyệt nữa(Exit Do). Như vậy nó luôn láy giá gần nhất so với NgayChungTu
Thân mến
Nếu hoàn chỉnh thì phải sửa
Mã:
If rs!NgayApDung < dNgay Then
thành
Mã:
If rs!NgayApDung <= dNgay Then
để nó xét luôn trường hợp NgayApDung = NgayChungTu