Mình có bài tập như file đã gửi. Mình muốn tìm theo nhiều điều kiện khác nhau khi tích vào checkbox.
Nếu check vào đâu thì nó sẽ tìm theo diều kiện check. Còn không thì ngược lại.
Cái cách mình làm có khả năng ra nhưng nó dài và không thông minh cho lắm.
Các bạn giúp mình tìm cách tối ưu. Thanks.
Tìm kiếm nhiều điều kiện
Moderator: tungblt
- xuanha
- Guru
- Posts: 1230
- Joined: Thu 19/08/2010 4:25 pm
- Location: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
- Has thanked: 13 times
- Been thanked: 374 times
- Contact:
Re: Tìm kiếm nhiều điều kiện
Toàn bộ bài của bạn được sửa lại như dưới đây, tại sao lại làm vậy thì bạn suy nghĩ một chút nhé
Tham khảo file đính kèm
- Private Sub txthoten_Change()
- Check2.Tag = "hoten='" & txthoten.Text & "'"
- End Sub
- Private Sub txtlop_Change()
- Check1.Tag = "lop='" & txtlop.Text & "'"
- End Sub
- Private Sub txtnamsinh_Change()
- Check3.Tag = "namsinh='" & txtnamsinh.Text & "'"
- End Sub
- Private Sub Command1_Click()
- Dim clt As Control
- Dim x As String
- If Check1.Value = 0 And Check2.Value = 0 And Check3.Value = 0 Then Exit Sub
- For Each clt In Me.Controls
- If TypeOf clt Is CheckBox Then
- If clt.Value = 1 Then x = IIf(x <> "", x & " and " & clt.Tag, x & clt.Tag)
- End If
- Next
- If rs.State = 1 Then rs.Close
- rs.Open "Select *From test where " & x, cn, adOpenDynamic, adLockBatchOptimistic
- Set DataGrid1.DataSource = rs
- End Sub
- Private Sub Form_Load()
- ketnoi
- End Sub
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599
http://caulacbovb.com/forum/viewtopic.php?t=23599
Re: Tìm kiếm nhiều điều kiện
Cái này đúng là nằm ngoài khả năng của mình.
Hôm trước mình có làm cái này để hiểu nhưng ứng dụng sang database thì chưa biết. Thanks bạn
Cái hôm trước mình làm thế này.
Hôm trước mình có làm cái này để hiểu nhưng ứng dụng sang database thì chưa biết. Thanks bạn
Cái hôm trước mình làm thế này.
- Attachments
-
- textboxcheck.rar
- (1.49 KiB) Downloaded 82 times
Re: Tìm kiếm nhiều điều kiện
Bạn cho mình hỏi nếu mình thêm 1 textbox về năm sinh. Có nghĩa Tìm kiếm từ năm này đến năm này thì phải dùng thêm điều kiện gì nữa không ?
Re: Tìm kiếm nhiều điều kiện
Mình thêm 1 trường năm sinh nữa trong Access ( cũng để ở dạng TEXT)
Nhưng khi chạy lên thì không được. Nó chỉ chạy dc năm cố định thôi.
Còn khoảng cách giữa các năm thì datagrid không hiển thị.
Nếu chạy câu lệnh between thì text năm sinh phải ở dạng số.
Nhưng mình thấy điều kiện ở đây là "and" vậy sao nó không kết hợp giữa 2 ô năm sinh với nhau đc nhỉ
Trong khi đó chỉ có 1 trong 2 ô năm sinh kết hợp đc với các checkbox còn lại.
Nhờ bạn chỉ giúp.
Nhưng khi chạy lên thì không được. Nó chỉ chạy dc năm cố định thôi.
Còn khoảng cách giữa các năm thì datagrid không hiển thị.
Nếu chạy câu lệnh between thì text năm sinh phải ở dạng số.
Nhưng mình thấy điều kiện ở đây là "and" vậy sao nó không kết hợp giữa 2 ô năm sinh với nhau đc nhỉ
Trong khi đó chỉ có 1 trong 2 ô năm sinh kết hợp đc với các checkbox còn lại.
Nhờ bạn chỉ giúp.
- Attachments
-
- testmoilailsi.rar
- (13.32 KiB) Downloaded 82 times
- xuanha
- Guru
- Posts: 1230
- Joined: Thu 19/08/2010 4:25 pm
- Location: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
- Has thanked: 13 times
- Been thanked: 374 times
- Contact:
Re: Tìm kiếm nhiều điều kiện
1. Mình không hiểu bạn dùng between thì lấy trường nào hoặc tiêu chí nào để thực hiện.
2. Năm sinh 1 và năm sinh 2 có giá trị bằng nhau thì không có khoảng cách giữa chúng.
3. Chuyển đổi dữ liệu về cùng một kiểu số để so sánh thì không có gì khó. VD: val(namsinh) between 1978 and 2001.
2. Năm sinh 1 và năm sinh 2 có giá trị bằng nhau thì không có khoảng cách giữa chúng.
3. Chuyển đổi dữ liệu về cùng một kiểu số để so sánh thì không có gì khó. VD: val(namsinh) between 1978 and 2001.
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599
http://caulacbovb.com/forum/viewtopic.php?t=23599
Re: Tìm kiếm nhiều điều kiện
Vậy trong trường hợp này không dùng between thì dùng điều kiện nào để lọc dữ liệu trong khoảng cách các năm. Mình thử đủ kiểu theo hiểu biết của mình rồi vẫn không ra.
- xuanha
- Guru
- Posts: 1230
- Joined: Thu 19/08/2010 4:25 pm
- Location: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
- Has thanked: 13 times
- Been thanked: 374 times
- Contact:
Re: Tìm kiếm nhiều điều kiện
Bạn có thể dùng bất kỳ phương thức nào cũng được, miễn là ra được kết quả và nhanh, gọn nhất. Nhưng bạn dùng nó vào mục đích gì trong bài này
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599
http://caulacbovb.com/forum/viewtopic.php?t=23599
Re: Tìm kiếm nhiều điều kiện
Mình sử dụng cách: bỏ check.tag 2 giá trị nam sinh. Sử dụng cậu truy vấn: rs.Open "Select *From test where ns between " & val(txtns1.text)&" and " &val(txtns2.text) &" and "& x &"", cn, adOpenDynamic, adLockBatchOptimistic.