Nhờ các bạn giúp mình code cho form tìm kiếm (1 người xem)

Liên hệ QC

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

nguyentuthang

Thành viên mới
Tham gia
5/1/08
Bài viết
5
Được thích
0
Chào các bạn. Mình có 1 form tìm kiếm cho một sheet dữ liệu.(có file gửi kèm).
Ở mục tra cứu dữ liệu, trong form "Tiêu chuẩn 1". Nếu mình gõ vào ô Mã minh chứng và click vào nút tìm, thì chương trình sẽ tìm trong cột mã minh chứng của sheet tc1 .Nếu tìm thấy mã, thì các thông tin đi kèm với mã ấy như tên minh chứng, người thu thập, thời gian thu thập và mô tả của minh chứng ấy sẽ hiện lên trong các texbox tương ứng trên form.
Mình lần mò mãi mà không được. Mong các bạn giúp mình với. Mình cảm ơn các bạn nhiều.
 

File đính kèm

Chào các bạn. Mình có 1 form tìm kiếm cho một sheet dữ liệu.(có file gửi kèm).
Ở mục tra cứu dữ liệu, trong form "Tiêu chuẩn 1". Nếu mình gõ vào ô Mã minh chứng và click vào nút tìm, thì chương trình sẽ tìm trong cột mã minh chứng của sheet tc1 .Nếu tìm thấy mã, thì các thông tin đi kèm với mã ấy như tên minh chứng, người thu thập, thời gian thu thập và mô tả của minh chứng ấy sẽ hiện lên trong các texbox tương ứng trên form.
Mình lần mò mãi mà không được. Mong các bạn giúp mình với. Mình cảm ơn các bạn nhiều.
Code cho nút tìm
Mã:
Private Sub cmdAdd_Click()
    Dim strMa As String
    strMa = InputBox("Vui long nhap ma minh chung can tim", "Tim")
    Dim Rng As Range
    Set Rng = Sheets("tc1").Range("B3:B1000").Find(strMa, LookIn:=xlValues, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        With Me
            .txtma = Rng.Value
            .txtten = Rng.Offset(, 1)
            .txtnguoi = Rng.Offset(, 2)
            .txtthoi = Rng.Offset(, 3)
            .txtmota = Rng.Offset(, 4)
        End With
    End If
End Sub
Lưu ý là những mã trùng nhau sẽ không tìm ra hết. nó chỉ tìm được 1 mã duy nhất từ trên xuống.
 
Upvote 0
Nếu vậy thì kết hợp sử dụng thêm ListBox nữa thì bao nhiêu thằng trùng nó cũng đều hiện ra cho mình xem.
 
Upvote 0
Nếu vậy thì kết hợp sử dụng thêm ListBox nữa thì bao nhiêu thằng trùng nó cũng đều hiện ra cho mình xem.

Thêm vòng lặp vào là được thôi anh. Tuy nhiên yêu cầu của tác giả chỉ có thế.
 
Upvote 0
Code cho nút tìm
Mã:
Private Sub cmdAdd_Click()
    Dim strMa As String
    strMa = InputBox("Vui long nhap ma minh chung can tim", "Tim")
    Dim Rng As Range
    Set Rng = Sheets("tc1").Range("B3:B1000").Find(strMa, LookIn:=xlValues, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        With Me
            .txtma = Rng.Value
            .txtten = Rng.Offset(, 1)
            .txtnguoi = Rng.Offset(, 2)
            .txtthoi = Rng.Offset(, 3)
            .txtmota = Rng.Offset(, 4)
        End With
    End If
End Sub
Lưu ý là những mã trùng nhau sẽ không tìm ra hết. nó chỉ tìm được 1 mã duy nhất từ trên xuống.


Anh ơi cho em hỏi đoạn code này với.

Giờ mình không cần hiện hộp hội thoại mà muốn đánh vào txtma và nó hiện ra thì làm sao vậy?
 
Upvote 0
Anh ơi cho em hỏi đoạn code này với.

Giờ mình không cần hiện hộp hội thoại mà muốn đánh vào txtma và nó hiện ra thì làm sao vậy?

Thì bạn thay như sau:

Mã:
Private Sub cmdAdd_Click()
    Dim Rng As Range
    Set Rng = Sheets("tc1").Range("B3:B1000").Find([B][COLOR=#ff0000]txtma[/COLOR][/B], LookIn:=xlValues, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        With Me
            .txtma = Rng.Value
            .txtten = Rng.Offset(, 1)
            .txtnguoi = Rng.Offset(, 2)
            .txtthoi = Rng.Offset(, 3)
            .txtmota = Rng.Offset(, 4)
        End With
    End If
End Sub
 
Upvote 0
sửa như vầy có ổn không anh?

Private Sub cmdAdd_Click()
Dim Rng As Range
Set Rng = Sheets("tc1").Range("B3:B1000").Find(UserForm6.txtma, LookIn:=xlValues, LookAt:=xlWhole)
If Not Rng Is Nothing Then
With Me
.txtten = Rng.Offset(, 1)
.txtnguoi = Rng.Offset(, 2)
.txtthoi = Rng.Offset(, 3)
.txtmota = Rng.Offset(, 4)
End With
End If
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom