ledangvan > 01-06-20, 10:00 PM
tranthanhan1962 > 02-06-20, 12:44 AM
buida > 05-06-20, 03:21 PM
(01-06-20, 10:00 PM)ledangvan Đã viết: Có bác nào viết được code tìm kiếm theo kiểu của điện thoại bây giờ không ?
Cách tìm của nó rất hay : Ví dụ tìm trong Danh bạ điện thoại : Người dùng đặt tên trong danh mục là : Anh Văn - Kế toán Công ty A
Khi tra cứu người dùng có thể gõ : Văn Kế Toán hoặc Văn A Hoặc Văn Công ty nó đều tìm ra kết quả chứ không bắt buộc phải đánh theo thứ tự chữ phát sinh
Có ai biết xin chỉ giúp, tôi xin cảm ơn.
tranthanhan1962 > 05-06-20, 04:23 PM
ledangvan > 05-06-20, 04:58 PM
(05-06-20, 04:23 PM)tranthanhan1962 Đã viết: Về lý thuyết thì không khó. Chỉ cần tạo một query, ở chổ field muốn lọc kết quả đưa vào Crierita biểu thức Like "*" & Form!form_Tim_Kiem.text_Tim_Kiem & "*" . Thiết kế một form_Tim_Kiem tạo một textbox có tên text_Tim_Kiem. Tạo một subform có recordsource là query kia.
Trên danh bạ điện thoại chỉ cần gõ một ký tự thì sẽ lập tức cập nhật danh sách lọc, và gõ mấy ký tự cũng được. Vì vậy đưa code subform requery vào event text_Tim_Kiem.Change. Nhưng khổ nỗi nếu không có lệnh Me.Refresh thì nó không cập nhật giá trị mới cho subform, còn có Me.Refresh thì nó sẽ quét đen ký tự của textbox nên gõ ký tự sau sẽ thay thế cho ký tự trước. Vì vậy, luôn luôn chỉ gõ được 1 ký tự.
ongke0711 > 05-06-20, 06:58 PM
tranthanhan1962 > 05-06-20, 07:23 PM
(05-06-20, 04:58 PM)ledangvan Đã viết: Cái mà em hỏi nó khác bác tranthanhan1962 à : Nếu tìm trong một chuỗi ký tự có nội dung : Công ty bê tông xây dựng Hà nộiHình như trong danh bạ điện thoại cũng không làm được đều này thì phải. Tuy nhiên, có thể sử dung cách tìm kiếm của hẹ thống bằng cách chuột phải vào field rồi gõ vào ô Text Filters / Equals... các giá trị tìm kiếm. Trong đó *: đại diện một nhóm ký tự, ? đại diện 1 ký tự, [abc] chuỗi có chứa ký tự được xác định, [!a-b] chuỗi không chứa ký tự được xác định... Còn nhiều nữa mà tôi không nhớ. Ngoài ra không còn cách nào khác. Hình như may tính bắt buột cái gì cũng cụ thể rõ ràng. Nó không biết ngẫu hứng là gì đâu!
Người dùng có thể tìm kiếm : Công ty Hà nội hoặc Công ty xây dựng hoặc Bê Tông Hà nội ... Tức là nó ko theo qui luật như tìm kiếm thông thường.
Tìm kiếm theo cách bỏ trong dấu * như bác nó chỉ kiếm được một từ chứa ví dụ : Tìm Công ty hoặc Xây dựng hoặc Hà nội hoặc Bê tông .. chứ nó ko nhảy cóc như phía trên được
Mục đích là người sử dụng lúc tìm người ta nhớ mường tượng Công ty làm về bê tông hoặc Công ty về xây dựng ...
thuyyeu99 > 05-06-20, 08:34 PM
Noname > 06-06-20, 08:57 AM
(05-06-20, 06:58 PM)ongke0711 Đã viết: Cách tìm này chỉ cần tách chuỗi tìm kiếm ra thành từng từ rồi đưa vô câu lệnh SQL.Phát triển ý tưởng này như sau:
Ví dụ: Công ty Hà Nội
--> [Tên] Like "*công*" Or [Tên] Like "*ty*" OR [Tên] Like "*Hà*" OR [Tên] Like "*Nội*"
Dùng hàm Split() tách chuỗi rồi dùng Like hoặc Instr() để tìm ký tự.
thuyyeu99 > 06-06-20, 11:03 AM
(06-06-20, 08:57 AM)Noname Đã viết:Nếu vậy chỉ cần Replace Space thành * cho nó lẹ chứ tạo Column chi anh ?(05-06-20, 06:58 PM)ongke0711 Đã viết: Cách tìm này chỉ cần tách chuỗi tìm kiếm ra thành từng từ rồi đưa vô câu lệnh SQL.Phát triển ý tưởng này như sau:
Ví dụ: Công ty Hà Nội
--> [Tên] Like "*công*" Or [Tên] Like "*ty*" OR [Tên] Like "*Hà*" OR [Tên] Like "*Nội*"
Dùng hàm Split() tách chuỗi rồi dùng Like hoặc Instr() để tìm ký tự.
1. Tạo 1 colume lưu tất cả các từ khóa có thể tìm kiếm: ví dụ colume [tag]: công, ty, hà, nội, văn, kế, toán
2. cho chạy 1 đoạn code chạy để lưu tất cả các từ khóa vào field để không phải nhập tay
3. Trong quá trình tìm kiếm, chỉ tìm kiếm trên colume tạo ra này, kết hợp với việc tách chuỗi như Ông kẹ nói bên trên.
Ví dụ chuyển đối chuỗi: "Công ty Nội Văn Toán" => [tag] like "*công*" or [tag] like "*ty*" or [tag] like "*Nội*" or [tag] like "*Văn*" or [tag] like "*Toán*"
Mình nghĩ khả thi trong việc tìm kiếm tùy ý như tìm danh bạ.