• Lập tìm kiếm theo cách ngẫu hứng
  • Lập tìm kiếm theo cách ngẫu hứng

    ledangvan > 01-06-20, 10:00 PM

    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.
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    tranthanhan1962 > 02-06-20, 12:44 AM

    Cái này hình như tôi có pots lên rồi, nhưng giờ không nhớ nằm đâu!
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    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.

    cái này hay nè, có ai giúp bạn đi, vì mình cũng rất cần cái này,
    chức năng này tương tự như ô tìm kiếm ở trên diễn đàn này nè!
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    tranthanhan1962 > 05-06-20, 04:23 PM

    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ự.
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    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ự.

    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ội
    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 ...
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    ongke0711 > 05-06-20, 06:58 PM

    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.
    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ự.
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    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ội
    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 ...
    Hì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!
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    thuyyeu99 > 05-06-20, 08:34 PM

    Em nghĩ không thể tìm kiếm như vậy được đâu.

    Công ty bê tông xây dựng Hà nội
    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.

    Mà nếu muốn tìm như vậy sao khong them * vào nhỉ ????
    Công ty*Hà nội hoặc Công ty*xây dựng hoặc Bê Tông*Hà nội.
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    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.
    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ự.
    Phát triển ý tưởng này như sau:
    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ạ.
  • RE: Lập tìm kiếm theo cách ngẫu hứng

    thuyyeu99 > 06-06-20, 11:03 AM

    (06-06-20, 08:57 AM)Noname Đã viết:
    (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.
    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ự.
    Phát triển ý tưởng này như sau:
    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ạ.
    Nếu vậy chỉ cần Replace Space thành * cho nó lẹ chứ tạo Column chi anh ?