Trang 1 trên 1

Kết quả tìm như Listbox của Google

Đã gửi: T.Tư 14/04/2010 2:21 pm
gửi bởi truongphu
Thủ thuật: Kết quả tìm như Listbox của Google
Tác giả: truongphu
Mô tả: Kết quả tìm như Listbox của Google



Vấn đề nầy nhiều bạn đề cập: làm sao khi gõ ký tự trên textbox thì listbox bên dưới xổ xuống danh sách các từ có trong CSDL thích hợp với nội dung textbox
Tôi có viết bài nầy hôm qua ở box thắc mắc, giờ trau chuốt lại cho tuyệt hơn:

1- CSDL đi kèm tạm thời có nhóm chữ khởi đầu ký tự a
1.JPG
1.JPG (16.05 KiB) Đã xem 3726 lần


2- Gõ tiếp
2.JPG
2.JPG (12.52 KiB) Đã xem 3726 lần


3- Khi gõ nhiều thêm: listbox tự thu ngắn theo danh sách cô đọng
khi chỉ còn 1 record, nếu record trong listbox nầy vẫn khác với textbox, listbox vẫn hiện.
ngược lại, nếu nội dung trùng nhau, listbox tự động biến mất

4- Đương nhiên ta có thể chọn record bất kỳ trong listbox: textbox sẽ nhận ngay kết quả và listbox biến mất
5- và nếu gõ các ký tự không có trong csdl: listbox đương nhiên không hiện ra

6- Code như sau:
  1. Dim conn As New Connection
  2. Dim Rec As New Recordset
  3.  
  4. Private Sub Form_Load()
  5. conn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\db1.mdb"
  6. End Sub
  7.  
  8. Private Sub List1_Click()
  9. Text1 = List1.Text
  10. List1.Visible = False
  11. End Sub
  12.  
  13. Private Sub Text1_Change()
  14. If Text1 = "" Then
  15.     List1.Visible = False
  16.     Exit Sub
  17. Else
  18.     List1.Clear
  19.     If Rec.State = 1 Then Rec.Close
  20.     Rec.Open "SELECT * FROM Table1 WHERE TênSP LIKE '" & Text1 & "%'", conn, 3, 3
  21.     If Rec.RecordCount = 0 Then
  22.         List1.Visible = False
  23.         Exit Sub
  24.     ElseIf (Rec.RecordCount = 1) And (UCase(Rec!TênSP) = UCase(Text1)) Then
  25.         List1.Visible = False
  26.         Exit Sub
  27.     Else
  28.         Do While Not Rec.EOF
  29.             List1.AddItem Rec!TênSP
  30.             Rec.MoveNext
  31.         Loop
  32.         List1.Height = List1.ListCount * 250
  33.         List1.Visible = True
  34.     End If
  35. End If
  36. End Sub
  37.  


7- Download project tham khảo. các bạn có thể bổ sung csdl và trình bày project lại theo ý riêng

Re: Kết quả tìm như Listbox của Google

Đã gửi: T.Ba 22/01/2013 11:49 pm
gửi bởi hiensaigon
cách add file .mdb vào form như thế nào vậy anh,??

Re: Kết quả tìm như Listbox của Google

Đã gửi: T.Sáu 18/04/2014 9:10 am
gửi bởi thanhphongialy
Chào Bác truongphu!
Xin hỏi: với data la tiếng việt unicode thì có cách nào không ?
xin gợi ý cho!
cảm ơn!

Re: Kết quả tìm như Listbox của Google

Đã gửi: T.Sáu 17/07/2015 8:37 pm
gửi bởi zippoo
em sử dụng code của a truongphu thì bị lỗi như trong hình thế này. mọi người chỉ mình với. file *.mdb dùng thế nào vậy mấy a. mong hồi âm từ mọi người cám ơn nhìu.

http://uphinhnhanh.com/view-6003966_1.jpg

Hình ảnh

Re: Kết quả tìm như Listbox của Google

Đã gửi: T.Hai 22/08/2016 4:22 pm
gửi bởi opla2014
cảm ơn tác giả.
mình muốn hỏi thêm:
1. mình muốn thêm 1 nút bấm: "hiển thị chi tiết" ở bên cạnh
2. sau khi tìm kiếm xong được 1 kết quả sẽ bấm vào " hiển thị chi tiết"
3. 1 form xuất hiện với thông tin chi tiết lấy từ trong csdl access tương ứng với kết quả tìm kiếm được.
4. form chi tiết giống hệt nhau( chỉ thiết kế 1 form) các dữ liệu trong các trường tương ứng ở form được lấy tương ứng từ csdl.
cảm ơn rất nhiều!
Re: mình ko phải dân chuyên VB6, mình có ý định viết 1 phần mềm tặng nhóc nhà mình nên tự mày mò, đến đoạn này thì tịt mất.
mình đính kèm dự án của mình để chủ topic và các bạn tư vấn và hỗ trợ mình nhé.