tranthanhan1962 > 06-06-20, 12:40 PM
Noname > 06-06-20, 05:02 PM
(06-06-20, 11:03 AM)thuyyeu99 Đã viết:mục đích của tạo Column riêng là vì ta có thể tìm kiếm trên 1 lúc nhiều field chứ không phải chỉ 1 field.(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ạ.
ongke0711 > 06-06-20, 05:24 PM
Public Function ChuoiTK(A As String, fldName As String) As String
Dim arrChuoi() As String
Dim i As Integer
ChuoiTK = ""
arrChuoi = Split(Trim(A), " ")
For i = LBound(arrChuoi) To UBound(arrChuoi)
ChuoiTK = ChuoiTK & "[" & fldName & "] Like " & "'*" & Trim(arrChuoi(i)) & "*' OR "
Next i
ChuoiTK = Left$(ChuoiTK, Len(ChuoiTK) - 3)
Erase arrChuoi
End Function
Public Function ChuyenDoi(A As String) As String
ChuyenDoi = "'*" & Replace(A, " ", "*") & "*'"
End Function
ledangvan > 07-06-20, 09:36 AM
(06-06-20, 05:24 PM)ongke0711 Đã viết: Làm demo cho các bạn tham khảo.
Link: https://drive.google.com/file/d/1VyOaniI...sp=sharing
Tôi làm theo 2 cách:
- Cách dùng hàm Replace () của bạn Thuyyeu99.
- Cách tách chuỗi thành từng từ riêng như tôi đã đề cập.
Tôi chưa làm demo theo cách của bạn NoName nhé nhưng tôi cũng cùng quan điểm với bác NoName vì đây cũng là cách giống như bạn dùng Tag trong các bài viết để tiện cho công cụ tìm kiếm vậy.
Ứng với mỗi cách trên, Table sẽ phản hồi khác nhau, các bạn tham khảo.
Mã PHP:Public Function ChuoiTK(A As String, fldName As String) As String
Dim arrChuoi() As String
Dim i As Integer
ChuoiTK = ""
arrChuoi = Split(Trim(A), " ")
For i = LBound(arrChuoi) To UBound(arrChuoi)
ChuoiTK = ChuoiTK & "[" & fldName & "] Like " & "'*" & Trim(arrChuoi(i)) & "*' OR "
Next i
ChuoiTK = Left$(ChuoiTK, Len(ChuoiTK) - 3)
Erase arrChuoi
End Function
Có sửa cái hàm của anh tranthanhan1962 lại chút vì dư các dấu nháy đơn " ' " và "&".
Mã PHP:Public Function ChuyenDoi(A As String) As String
ChuyenDoi = "'*" & Replace(A, " ", "*") & "*'"
End Function
ledangvan > 07-06-20, 11:06 AM