-
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
ongke0711 > 04-03-16, 11:38 PM
Mình mày mò theo gợi ý của bác maidinhdan thì cũng làm ra được cái file này nhưng vẫn bị lỗi ở chuỗi hiển thị chưa đúng. Mình không biết cách nào cắt các ký tự dư thừa khi gõ vào textbox để search. Các bạn có cách nào khắc phục thì hướng dẫn giùm nhé. Các bạn xem hình:
Maidinhdan có nói dùng combobox nhưng mình thấy chỉ có listbox là hiển thị đúng yêu cầu. Vì khi gõ từ khoá tìm kiếm, combobox nó sẽ tắt ngay cái drop down list nếu mất focus, còn listbox thì không. Có thể mình chưa biết cách khai thác hết thằng combobox này.
Bây giờ làm theo cách của bạn MTNQ xem sao.
Link file demo của mình: http://www.mediafire.com/download/yh83xj...chV1.accdb -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
MTNQ > 05-03-16, 08:57 AM
Cách bác làm cũng gần giống với cách của MTNQ rùi
Theo MTNQ thì không nên dùng phím Tab để đưa focus xuống listbox vì người dùng hay sử dụng phím này để di chuyển sang điều khiển kế tiếp. Ta nên dùng vbKeyDown,vì phím này cũng dùng cho combobox
Phải chắc chắn khi txtSearch mất focus thì cái lstTrieuChung cũng phải ẩn đi, vì khi ta di chuyển sang điều khiển khác mà cái list vẩn nằm phơi ra đó thì kỳ lắm
Góp một tay với bác cho ra cái v1.1
SearchV1.1.rar
P/S: MTNQ đã thêm vào 30 000 bản ghi để test tốc độ, với v1.2 bác sẽ thấy tốc độ được cải thiện đáng kể -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
ongke0711 > 05-03-16, 01:36 PM
Đúng là v1.1 này nó gọn gàng hơn nhiều.
- Giải quyết được việc dư ký tự tìm kiếm. Tôi cứ lay hoay dòng code thay chuỗi cũ (xoá ký tự dư) + giá trị mới từ listbox nhưng cứ gặp lỗi "Cannot reference method..." khi control nó không focus, mà khi cho focus thì lại báo lỗi khác.
- Khi bấm Backspace để xoá cũng không gặp lỗi.
- Thao tác trơn tru.
Nhưng có 1 sự kiện nhỏ là khi Enter con trỏ chuột nó chạy đâu mất? Nếu hiện ở cuối chuỗi vừa thêm vào là tiện nhất thay vì hiện nay là phải click chuột lại vào khung textbox.
Tôi có lưu qua bản 2003 để mọi người có thể tham khảo và góp ý.
Search v1.1.mdb -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
MTNQ > 05-03-16, 03:54 PM
(05-03-16, 01:36 PM)ongke0711 Đã viết: Nhưng có 1 sự kiện nhỏ là khi Enter con trỏ chuột nó chạy đâu mất? Nếu hiện ở cuối chuỗi vừa thêm vào là tiện nhất thay vì hiện nay là phải click chuột lại vào khung textbox.
(Ngồi gõ quá trời, không biết bấm nhầm phím nào mà bị mất sạch, giờ phải gõ lại điên cả người)
Trên máy MTNQ thì nó "hiện ở cuối chuỗi vừa thêm vào", chắc phải test lại rùi
Ở V1.2 này đã chuyển sang mdb, tạo thêm 2 form: frmSearchV1_2 và frmSearchV1_2_1
table1 có hơn 60 000 bản ghi
1/frmSearchV1_2:
-Ngưng tìm kiếm khi KeyCode = vbKeyBack
-Sử dụng thuộc tính filter của ADO recordset để lọc dữ liệu (Không biết các bác như nào chứ MTNQ thấy filter của DAO recordset chậm hơn, trong trường hợp này lại có chút vấn đề với Unikey khi gõ TV )
2/ frmSearchV1_2_1:
-Chỉ tìm kiếm khi phím space (KeyCode = vbKeySpace = 32) được nhấn
Các bác xem và cho nhận xét nhé!
P/S: Chỉ mới 1 form mà code đã nhiều vậy rùi. Nếu code cho nhiều textbox trên form và mỗi form phải viết lại thì "tẩu hỏa nhập ma"
Nếu đưa lên class thì trên mỗi form chỉ cần 1 hoặc vài dòng lệnh thui
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Quên mất cái Demo:
http://www.mediafire.com/download/yagxva...chV1.2.rar -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
MTNQ > 05-03-16, 05:22 PM
-
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
ongke0711 > 05-03-16, 06:37 PM
Sau khi test thì tôi thấy form 1.1 vẫn chạy nhanh hơn form 1.2 va 1.2.1.
Đối với form 1.2 và 1.2.1 thì tốc độ hiển thị nội dung filter nhanh hơn nhưng khi Enter cập nhật thì con trỏ xoay hơi bị lâu (1,2s). Thí dụ rõ nhất khi gõ ký tự "c" (có >7.000 records).
Nếu bạn MTNQ có thời gian thì chuyển thành class để anh em học hỏi nhé. Thank trước. -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
thanhtruong > 18-07-18, 12:28 PM
(05-03-16, 05:22 PM)MTNQ Đã viết: Up lại cái Demo
Lý do: fix một số lỗi
SearchV1.2-1.rar
Thấy cái này hay, nhưng ý tưởng này hay hơn. xin góp ý tý. nếu được thì rất chi là hay.
Cũng y chang cái demo trên, hoặc tạo 1 cái combobox tự động điền và lấy dữ liệu từ "table1"
Khi nhập thông tin là lúc nó tìm kiếm thông tin luôn,
Ví dụ: ta nhập là "thị" thì tất cả những record từ table1 có từ "thị" thì nó hiển thị luôn bên dưới để thuận tiện trong lúc ta chỉ nhớ 1 số từ trong chuỗi.
Hiện tại: Nhập là "Gan" ---> kết quả: Gan đen thui và gan phình to
Mong muốn: Nhập là "to"---> kết quả: Gan phình to
Thường thường là ta không nhớ chữ đầu, cứ nhớ 1 từ nào đó. chẵn hạn "Các rối loạn điện giải khác" thì mình chỉ nhớ là "điện giải".
Không biết có thể làm được không. xin cho ý kiến.
Xin cảm ơn. -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
ongke0711 > 18-07-18, 12:53 PM
(18-07-18, 12:28 PM)thanhtruong Đã viết: Ví dụ: ta nhập là "thị" thì tất cả những record từ table1 có từ "thị" thì nó hiển thị luôn bên dưới để thuận tiện trong lúc ta chỉ nhớ 1 số từ trong chuỗi.
Hiện tại: Nhập là "Gan" ---> kết quả: Gan đen thui và gan phình to
Mong muốn: Nhập là "to"---> kết quả: Gan phình to
Thường thường là ta không nhớ chữ đầu, cứ nhớ 1 từ nào đó. chẵn hạn "Các rối loạn điện giải khác" thì mình chỉ nhớ là "điện giải".
Muốn tìm từ ở vị trí bất kỳ thì bạn thêm dấu "*" trước và sau chuỗi tìm kiếm là được rồi.
Trong code có đoạn:
strTextSearch = strTextSearch & "*" ==> sửa thành: strTextSearch = "*" & strTextSearch & "*" -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
thanhtruong > 18-07-18, 03:33 PM
(18-07-18, 12:53 PM)ongke0711 Đã viết: Muốn tìm từ ở vị trí bất kỳ thì bạn thêm dấu "*" trước và sau chuỗi tìm kiếm là được rồi.
Trong code có đoạn:
strTextSearch = strTextSearch & "*" ==> sửa thành: strTextSearch = "*" & strTextSearch & "*"
Cái này phải đưa vào combobox thế nào ạ. vì chỉ nhập liệu đơn giản, nên mình chỉ sử dụng combobox, mà không biết đưa code tìm kiếm tương đương vào như thế nào.
demo đính kèm
Nhờ anh xem thử. cảm ơn! -
RE: Tự động tìm kiếm và điền thông tin trong textbox, cách nhau dấu phẩy " ,"
Xuân Thanh > 19-07-18, 07:12 PM
(18-07-18, 03:33 PM)thanhtruong Đã viết:
(18-07-18, 12:53 PM)ongke0711 Đã viết: Muốn tìm từ ở vị trí bất kỳ thì bạn thêm dấu "*" trước và sau chuỗi tìm kiếm là được rồi.
Trong code có đoạn:
strTextSearch = strTextSearch & "*" ==> sửa thành: strTextSearch = "*" & strTextSearch & "*"
Cái này phải đưa vào combobox thế nào ạ. vì chỉ nhập liệu đơn giản, nên mình chỉ sử dụng combobox, mà không biết đưa code tìm kiếm tương đương vào như thế nào.
demo đính kèm
Nhờ anh xem thử. cảm ơn!
1/ Combobox không được add Rowsouce khi thiết kế
2/ Khi click combo thì add Rowsouce bằng lệnh VBA, thoát thì =""
3/ Khi gõ vào combo thì gọi lệnh tìm kiếm rồi add Rowsouce
Thử xem