Nhờ các Bạn sửa code chọn tên khách hàng theo kiểu danh bạ điện thoại (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ndhmoney686

Thành viên thường trực
Tham gia
25/4/12
Bài viết
376
Được thích
104
Mình có ghi chi tiết ở trong file các Bạn xem giúp đỡ mình. Cảm ơn các Bạn nhiều!
 

File đính kèm

Mình có ghi chi tiết ở trong file các Bạn xem giúp đỡ mình. Cảm ơn các Bạn nhiều!
Bạn dùng ADO theo ví dụ nhé

Mã:
Private Sub txtSrch_Change()

Dim adoRS As ADODB.Recordset
Dim sSQL As String
sSQL = "select * from [DMKH$] where ucase([TENKH]) like '%" & UCase(txtSrch) & "%'"
Set adoRS = New ADODB.Recordset
adoRS.Open sSQL, cnn
    lstResult.Clear
       Do Until adoRS.EOF
         lstResult.AddItem adoRS![TENKH]
         adoRS.MoveNext
       Loop
adoRS.Close
Set adoRS = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em cảm ơn Anh Hai Lúa Miền Tây rất nhiều! Code ngắn gọn mà hiệu quả như mong đợi. File của Anh thì nó chạy rất ngon.

Nhưng Em copy vào file của Em thì nó ko chạy được. Em loay hoay sửa mãi mà nó không chạy. Mong Anh và các Bạn giúp đỡ xem cần thay đổi những chỗ nào để file khác có thể ứng dụng và chạy được.

Anh cho Em hỏi một chút là nếu muốn thoát khỏi danh sách đó thì bấm mục exit, anh thêm giúp em câu lệnh là nếu thoát có thể bấm phím ESC. Mong Anh và các Bạn giúp đỡ.
 
Lần chỉnh sửa cuối:
Upvote 0
Em cảm ơn Anh Hai Lúa Miền Tây rất nhiều! Code ngắn gọn mà hiệu quả như mong đợi. Anh cho Em hỏi một chút là nếu muốn thoát khỏi danh sách đó thì bấm mục exit, anh thêm giúp em câu lệnh là nếu thoát có thể bấm phím ESC. Mong Anh và các Bạn giúp đỡ.
Chép thêm code sau vào code của form
PHP:
Private Sub lstResult_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me
End Sub
Private Sub txtSrch_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then Unload Me
End Sub
 
Upvote 0
Ở Form em sửa những chỗ tô mầu đỏ theo file mới của em, mong Anh Hai Lúa Miền Tây và các Bạn chỉ giúp có đúng ko?:

Mã:
[FONT=Verdana]Option Explicit[/FONT]


[FONT=Verdana]Private Sub UserForm_Initialize()[/FONT]
[FONT=Verdana]Dim adoRS As ADODB.Recordset[/FONT]
[FONT=Verdana]Dim sSQL As String[/FONT]
[FONT=Verdana]If cnn.State <> 1 Then Moketnoi[/FONT]
[FONT=Verdana]sSQL = "select * from [[/FONT][B][COLOR=#ff0000]DMKH[/COLOR][/B][FONT=Verdana]$] [/FONT][FONT=Verdana]"[/FONT]
[FONT=Verdana]Set adoRS = New ADODB.Recordset[/FONT]
[FONT=Verdana]adoRS.Open sSQL, cnn[/FONT]
[FONT=Verdana]lstResult.Clear[/FONT]
[FONT=Verdana]Do Until adoRS.EOF[/FONT]
[FONT=Verdana]  lstResult.AddItem adoRS![[/FONT][B][COLOR=#ff0000]TENKH[/COLOR][/B][FONT=Verdana]][/FONT]
[FONT=Verdana]  adoRS.MoveNext[/FONT]
[FONT=Verdana]Loop[/FONT]
[FONT=Verdana]adoRS.Close[/FONT]
[FONT=Verdana]Set adoRS = Nothing[/FONT]
[FONT=Verdana]End Sub
[/FONT]
[FONT=Verdana]Private Sub CmdExit_Click()[/FONT]
[FONT=Verdana]Unload Me[/FONT]
[FONT=Verdana]End Sub[/FONT]
[FONT=Verdana]Private Sub txtSrch_Change()[/FONT]
[FONT=Verdana]On Error Resume Next[/FONT]
[FONT=Verdana]Dim adoRS As ADODB.Recordset[/FONT]
[FONT=Verdana]Dim sSQL As String[/FONT]
[FONT=Verdana]sSQL = "select * from [[/FONT][B][COLOR=#ff0000]DMKH[/COLOR][/B][FONT=Verdana]$] where ucase([[/FONT][B][COLOR=#ff0000]TENKH[/COLOR][/B][FONT=Verdana]]) like '%" & UCase(txtSrch) & "%'"[/FONT]
[FONT=Verdana]Set adoRS = New ADODB.Recordset[/FONT]
[FONT=Verdana]adoRS.Open sSQL, cnn[/FONT]
[FONT=Verdana]lstResult.Clear[/FONT]
[FONT=Verdana]Do Until adoRS.EOF[/FONT]
[FONT=Verdana]  lstResult.AddItem adoRS![[/FONT][B][COLOR=#ff0000]TENKH[/COLOR][/B][FONT=Verdana]][/FONT]
[FONT=Verdana]adoRS.MoveNext[/FONT]
[FONT=Verdana]Loop[/FONT]
[FONT=Verdana]adoRS.Close[/FONT]
[FONT=Verdana]Set adoRS = Nothing[/FONT]
[FONT=Verdana]End Sub[/FONT]
[FONT=Verdana]Private Sub lstResult_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)[/FONT]
[FONT=Verdana]If KeyCode = 27 Then Unload Me[/FONT]
[FONT=Verdana]End Sub[/FONT]
[FONT=Verdana]Private Sub txtSrch_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)[/FONT]
[FONT=Verdana]If KeyCode = 27 Then Unload Me[/FONT]
[FONT=Verdana]End Sub[/FONT]


[FONT=Verdana]Private Sub lstResult_DblClick(ByVal Cancel As MSForms.ReturnBoolean)[/FONT]
[FONT=Verdana]On Error Resume Next[/FONT]
[FONT=Verdana]If Not Intersect([F5:F2223], ActiveCell) Is Nothing Then[/FONT]
[FONT=Verdana]Cells(ActiveCell.Row, "F") = lstResult.List(lstResult.ListIndex, 0)[/FONT]
[FONT=Verdana]ActiveCell.Offset(1).Select[/FONT]
[FONT=Verdana]End If[/FONT]
[FONT=Verdana]End Sub[/FONT]

Ở Modul Em sửa chỗ tô mầu đỏ theo file mới của Em:
Mã:
[FONT=Verdana]Public cnn As New ADODB.Connection[/FONT]
[FONT=Verdana]Sub Moketnoi()[/FONT]
[FONT=Verdana]With cnn[/FONT]
[FONT=Verdana].ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & _[/FONT]
[FONT=Verdana]ThisWorkbook.FullName & "; " & _[/FONT]
[FONT=Verdana]"Extended Properties=Excel 8.0;"[/FONT]
[FONT=Verdana].CursorLocation = adUseClient[/FONT]
[FONT=Verdana].Open[/FONT]
[FONT=Verdana]End With[/FONT]

[FONT=Verdana]End Sub[/FONT]




[FONT=Verdana]Sub ShowForm()[/FONT]
[B][COLOR=#ff0000]UserForm1[/COLOR][/B][FONT=Verdana].Show[/FONT]
[FONT=Verdana]End Sub[/FONT]

 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Muốn dùng ADO thì bạn phải thiết kế DL hợp lý, ví dụ tên Sheet, tên cột không dài dòng và tránh ghi tiếng Việt, trong file tráng trộn cell....
 
Upvote 0
Với điều kiện bài này thì dùng hàm Filter khá gọn gàng, các bạn tham khảo nha. Nghiên cứu hàm Filter sẽ cho nhiều cách lọc khá hay.
(Lưu ý mình áp dụng phân biệt chữ Hoa và thường nha)

Mã:
Sub nap()
Dim Tm(), Tm1() As String, dk
dk = Trim(Me.TextBox1.Text)
Tm = WorksheetFunction.Transpose(Range(Sheet1.[C2], Sheet1.[C65536].End(3)))
Tm1 = Filter(Tm, dk, True)
Me.ListBox1.Clear
If UBound(Tm1) > 0 Then Me.ListBox1.List = WorksheetFunction.Transpose(Tm1)
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn Anh Sealand! Anh ơi Anh xem giúp Em cách để khi nháy đúp chuột vào file của a là cột C thì nó hiện danh sách tên lên để chọn. Còn như hiên tại thì nó không hiện danh sách lên để chọn tên được Anh ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Đây là mình giới thiệu cách lọc thôi, còn yêu cầu khác bạn tự làm. Nếu vướng thì nêu ra ta cùng giải quyết. Việc nháy đúp vào cột C bạn ráp vào sự kiện của Worksheet là xong.
 
Lần chỉnh sửa cuối:
Upvote 0
Em tạo một file mới và copy code trong file của Anh Hai Lúa Miền Tây nhưng khi dùng thử thì thấy bị lỗi. Em gửi file lên mong Anh Hai Lúa Miền Tây và các Bạn xem và chỉ giúp lỗi. Cảm ơn Anh và các Bạn nhiều!
Bạn vào bài 1 [h=1]ADO căn bản: Kết nối truy vấn CSDL từ file Excel đến file Access.[/h]và tham chiếu đến thư viện như sau
(Chuẩn bị môi trường làm việc: Vào cửa sổ code click chọn Tools>Refrences, xong chọn Microsoft ActiveX Data Objects x.x Library)
 
Upvote 0

File đính kèm

Upvote 0
Nếu sheet DMKH. Cột TENKH nằm ở cột B. Nếu nó nằm ở cột H thì phải làm thế nào vậy Anh?
Không biết bạn đang hỏi ai, nhưng trong code của mình viết là thế này
Bạn tìm D4 thay bằng H4, và tìm D65536 thay bằng H65536

Vì thấy dữ liệu ít nên làm biếng dùng mảng tạm, mà gán trực tiếp vào listbox. Nếu dữ liệu nhiều thì không nên xài code này sẽ hơi chậm

PHP:
Sub tim_DM()
Dim tim As String, ten As Range
DMKH.LB1.Clear
tim = UCase(DMKH.TB1.Value)
If tim <> "" Then
  For Each ten In Sheet6.Range(Sheet6.[D4], Sheet6.[D65536].End(3))
    If InStr(1, UCase(ten), tim) <> 0 Then
      DMKH.LB1.AddItem ten
    End If
  Next
End If
End Sub
 
Upvote 0
Mong Anh Hai Lúa Miền Tây và các Bạn xem giúp Em file đính kèm. Em có sử dụng code của Anh Hai Lúa Miền Tây ở bên trên và đưa vào file. ở file của Anh Hai Lúa Miền Tây Em bấm chọn khách hàng thì nó hiện thị ngay 1 danh sách khách hàng. Còn file của em cho code đó sang thì nó hiện lên bảng để chọn, nhưng ko hiện được list danh sách khách hàng, mà phải gõ vào ô tìm kiếm 1 chữ bất kỳ mà có trong list thì mới thấy list hiện lên hoặc xóa chữ vừa mới nhập vào ô tìm kiếm thì nó sẽ hiện toàn bộ. Mong Anh và các Bạn chỉ giúp tại sao code copy nguyên của Anh Hai Lúa Miền Tây sang nó lại sảy ra sự cố trên.
 

File đính kèm

Upvote 0
mong anh hai lúa miền tây và các bạn xem giúp em file đính kèm. Em có sử dụng code của anh hai lúa miền tây ở bên trên và đưa vào file. ở file của anh hai lúa miền tây em bấm chọn khách hàng thì nó hiện thị ngay 1 danh sách khách hàng. Còn file của em cho code đó sang thì nó hiện lên bảng để chọn, nhưng ko hiện được list danh sách khách hàng, mà phải gõ vào ô tìm kiếm 1 chữ bất kỳ mà có trong list thì mới thấy list hiện lên hoặc xóa chữ vừa mới nhập vào ô tìm kiếm thì nó sẽ hiện toàn bộ. Mong anh và các bạn chỉ giúp tại sao code copy nguyên của anh hai lúa miền tây sang nó lại sảy ra sự cố trên.

bạn xem thử file coi nhé.
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom