-
Lấy giá trị TOP theo điều kiện
wintq > 16-07-15, 10:23 AM
Ví dụ có 1 Forms ABC có ô Text1 (dùng để gõ số lượng bất kỳ vào). Giờ mình muốn dùng 1 Query lọc theo thứ tự từ cao xuống thấp với số lượng= số lượng vừa nhập ở Ô text1.
Mong các Bạc giúp đỡ -
RE: Lấy giá trị TOP theo điều kiện
maidinhdan > 16-07-15, 11:59 AM
(16-07-15, 10:23 AM)wintq Đã viết: Ví dụ có 1 Forms ABC có ô Text1 (dùng để gõ số lượng bất kỳ vào). Giờ mình muốn dùng 1 Query lọc theo thứ tự từ cao xuống thấp với số lượng= số lượng vừa nhập ở Ô text1.
Mong các Bạc giúp đỡ
Trả lời: không sử dụng Top theo điều kiện biến thiên được, nên cần tạo ra 1 hàm để nó tính
Cú pháp hàm:
Mã PHP:Public Function giatri()
Dim Tongso, Socanlay, Ketqua As Single
Tongso = DCount("[MANV]", "[1-qrXephang]")
Socanlay = Forms![FormABC]![txtgiatri]
Ketqua = Tongso - Nz(Socanlay)
giatri = Ketqua
End Function
Trong đó:
Tongso : Tất cả những người hiện có
Socanlay : Cái số bạn muốn điền
Kế tiếp ta sẽ tạo query để xếp hạng cho từng người tính từ cao đến thấp
Cuối cùng tạo 1 query mới lấy nguồn từ query xếp hạn và đặt điều kiện bằng hàm giá trị có lượng thay đổi.
Xem demo sẽ rõ. ( Do hôm nay diễn đàn bị lỗi nên Demo sẽ được gửi cho bạn đúng vào 9h sáng ngày 17/7/2015) -
RE: Lấy giá trị TOP theo điều kiện
bvchauthanh > 17-07-15, 10:23 PM
Cách của bạn Maidinhdan cũng rất hay, mình xin góp 1 cách nữa cho bạn thêm lựa chọn nè.
Ý tưởng là tạo 1 form kiểu main/sub, 1 textbox (txtLoc) + 1 button (cmdLoc), tại sự kiện Onclick sài code sau để set recordsource cho sub như sau:
Mã PHP:Private Sub cmdLoc_Click()
Dim intLoc As String
Dim sql As String
With Me
intLoc = IIf(Nz(.txtSL, "") = "", "", "TOP " & .txtSL)
sql = "SELECT " & intLoc & " tblHangHoa.MaHang, tblHangHoa.TenHang, tblHangHoa.DVTinh FROM tblHangHoa"
.sub.Form.RecordSource = sql
End With
End Sub
xem Demo sẽ rõ: Down tại đây
hy vọng giúp được bạn -
RE: Lấy giá trị TOP theo điều kiện
Minh Tiên > 21-07-15, 03:47 PM