Tạo Form nhập DL và Tra cứu Thông tin

Liên hệ QC

hong_tt

Thành viên mới
Tham gia
24/8/07
Bài viết
24
Được thích
12
EM có 1 một File gửi kèm, nhờ các anh chị giúp
Xin cảm ơn.
 

File đính kèm

  • File TK.rar
    62 KB · Đọc: 395
- Theo tôi, dữ liệu của bạn không phức tạp nên dùng giải pháp nhập trên sheet là tốt nhất. Nếu nhập bằng form bạn phải thiết kế thêm phần "sửa".
- Tra cứu có thể làm như sau: Dùng sự kiện Worksheet_Change để trích dữ liệu từ Dulieu sang. Sau đây là ví dụ tra cứu theo TK
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tk_, dong1, dong2, dongcuoi
If Target.Address = "$D$2" Then
    Sheets("TraCuu").Range("A7:E14").ClearContents
    tk_ = Target.Value
    dong2 = 7
    dongcuoi = Sheets("Dulieu").Range("D5").End(xlDown).Row
    If dongcuoi > 5 Then
        For dong1 = 6 To dongcuoi
            If Sheets("Dulieu").Range("D" & dong1).Value = tk_ Then
                Sheets("TraCuu").Range("A" & dong2 & ":E" & dong2).Value = _
                Sheets("Dulieu").Range("A" & dong1 & ":E" & dong1).Value
                dong2 = dong2 + 1
            End If
        Next
    End If
End If
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Xin cảm ơn anh

Vì em mới bắt đầu tìm hiểu về VBA nên chưa được hiểu lắm
Anh có thể làm giúp em theo File EM gửi được không?
Một lần nữa xin cảm ơn
 
hong_tt đã viết:
Vì em mới bắt đầu tìm hiểu về VBA nên chưa được hiểu lắm
Anh có thể làm giúp em theo File EM gửi được không?
Một lần nữa xin cảm ơn
Bạn mới bắt đầu VBA mà muốn làm như file chưa được đâu. Phải ABC đã. Tôi có thể làm cho bạn nhưng vấn đề là bạn phải hiểu thì mới phát huy.
Trước mắt tôi sẽ làm cho bạn, còn HD thì tôi thua.
 
Xin cảm ơn anh

Nhờ anh làm giúp
EM sẽ học và tìm hiểu
 
1/Về form nhập liệu, bạn có thể tìm bài Thực tập tạo form từ A-Z của tôi đã hỏi các bạn khác.
2/Phần trích các báo cáo, tôi gắn code của chibi vào file cho bạn. Cứ nghiên cứu, vì dữ liệu của bạn là ví dụ nên tôi chưa test hết. Phần này bạn nghiên cứu thêm về for ...next của PTM412, hay là dùng Advance Filter.
3/File bạn bị virus macro => nhiều name sai. Tôi đã xóa, bạn nghiên cứu tìm cách xóa các file con lại. Dùng name manager hay là Excel 2007.
Chúc thành công.
 

File đính kèm

  • File TK.zip
    25.3 KB · Đọc: 252
cảm ơn anh đã giúp

1 - Em đã tạo được Form nhập dữ liệu, nhưng em quản lý bằng Tài khoản
mỗi người một Tài khoản, anh giúp em 1 chút nữa là khi nhập Tài khoản nếu đã tồn tại tài khoản thì thông báo Tài khoản này đã có và không cho nhập, nếu chưa có thì cho nhập mới.
2 - ANh cho em hỏi, Sheest DMKH có ý nghĩa gì? vì nếu em xoá Sheest này đi thì không thấy lỗi gì cả, chương trình vẫn chạy bình thường.
EM GỬI LÀI FILE ANH XEM VÀ GIÚP EM
 

File đính kèm

  • File TK.rar
    28 KB · Đọc: 133
1 - Bạn sửa code:
Mã:
ws.Cells(iRow, 4).Value = Me.TextBox4.Value
For i = 2 To iRow - 1
 If ws.Cells(i, 4) = Me.TextBox4.Value Then
 MsgBox "Tai khoan nay da ton tai!"
 Exit Sub
 End If
Next i
ws.Cells(iRow, 1).Value = Me.TextBox1.Value
ws.Cells(iRow, 2).Value = Me.TextBox2.Value
ws.Cells(iRow, 3).Value = Me.TextBox3.Value
ws.Cells(iRow, 5).Value = Me.TextBox5.Value
2 - Không thấy sheet DMKH có ý nghĩa gì cả, có lẽ là một draft chăng...

Góp ý:
- Nút Cancel trong UserForm sai lỗi chính tả: Cancle
- Khi bạn click vào textbox để nhập liệu, sau đó nhấn Tab thì nó nhảy loạn xạ chẳng theo thứ tự gì cả.
- Cột đầu tiên có thể nhập tự động nếu có quy luật, đỡ phải gõ nhiều D00...
Thân!
 
hong_tt đã viết:
2 - ANh cho em hỏi, Sheest DMKH có ý nghĩa gì? vì nếu em xoá Sheest này đi thì không thấy lỗi gì cả, chương trình vẫn chạy bình thường.
EM GỬI LÀI FILE ANH XEM VÀ GIÚP EM
Theo tôi luôn có Sheest DMKH, khi chọn KH hay Acc thì dùng validation trong phần tra cứu. Còn trong form NL nên có phần Combo Box tại AccID =>Tên KH
DMKH là mã KH duy nhất trong sh DL.
LamA0 hoàn thiện hộ bạn ấy nhé. Cám ơn nhiều. Nên có TransNo là số auto tăng dần khi mở Form. 1 KH có thể credit >1 lần.
 
Lần chỉnh sửa cuối:
Chắc phải tối em mới làm được bác ạ, cuối năm busy quá!
 
Sửa dữ liệu tại Form

ANh chỉ giúp thêm:
1 - Tại Form nhập DL: Trường Trans_num là tự động tăng lên khi có thêm 1 bản ghi mới, trường Trans_date là ngày hệ thống (2 trường này không phải nhập nữa)
2 - Tạo một nút SỬA, vì có thể có bản ghi đang thiếu dữ kiện, VD trường CR_amount có thể có người chưa có tiền, thì mình phải bổ sung vào.
EM muốn khi nhập TK thì tên người đó hiện ra luôn và mình có thể chỉnh sửa lại TT của người đó.
ANh giúp em
 
hong_tt đã viết:
ANh chỉ giúp thêm:
2 - Tạo một nút SỬA, vì có thể có bản ghi đang thiếu dữ kiện, VD trường CR_amount có thể có người chưa có tiền
Thì làm 1 form nếu đủ trường thì mới cho nhập vào dulieu được không. Còn tạo nút sửa thì nhiêu khê lắm, qua sheet DuLieu sửa thẳng luôn. Chờ Lam_A0 làm cho.
 
Bạn sài tạm nhé, đang hoàn tất .
Nếu muốn kiểm tra thông tin nhập thêm code sau vào nút Add của form frmDulieu.
Mã:
    If txtTTN = "" Or txtTD = "" Or txtName = "" Or txtAcc = "" Or txtRC = "" Then
       MsgBox "Xin vui long nhap day du thong tin !", 48, "Msg"
       Exit Sub
    End If
 

File đính kèm

  • KeToan.zip
    33.7 KB · Đọc: 204
Lần chỉnh sửa cuối:
cảm ơn bạn
Mình đang thử dùng File của bạn, rất hay
CHo mình hỏi, từ File của mình đã gửi trước đó, giả sử tại Sheet Tracuu, khi mình gõ TK cần tra cứu, thì nó hiện ra TT cần tra cứu, nhưng bây giờ mình muốn là khi tìm thấy rồi nếu bản ghi đó còn thiếu dữ kiện thì mình bổ sung, sau khi bổ sung xong thì bản ghi tự động chuyển sang Sheet Baocao để làm báo cáo, tất nhien là phải tính tổng luôn.
- Hoặc nếu từ File của bạn, tại Form khi mình nhập TK nếu TK đó tồn tại rồi thì hiện lên thông tin đầy đủ của TK đó trên Form, nếu TK đó chưa có số tiền thì mình nhập trực tiếp tại Form, và tự động chuyển sang Sheet Baocao.
(cứ tìm thấy một bản ghi còn thiếu dữ kiện, sau khi nhập đầy đủ thì tự động chuyển sang Sheet Baocao để làm báo báo, và tính tổng luôn, nếu TK đó chưa tồn tại thì nhập mới, sau khi nhập xong đầy đủ TT thì cũng tự động chuyển sang Sheet Baocao)
cảm ơn bạn nhé.
 
Lần chỉnh sửa cuối:
Hơ, file của anh dmtdmtbb hoành tráng quá! Anh làm tiếp cho bạn ấy nhé! )(&&@@)(&&@@
hong_tt đã viết:
CHo mình hỏi, từ File của mình đã gửi trước đó, giả sử tại Sheet Tracuu, khi mình gõ TK cần tra cứu, thì nó hiện ra TT cần tra cứu, nhưng bây giờ mình muốn là khi tìm thấy rồi nếu bản ghi đó còn thiếu dữ kiện thì mình bổ sung, sau khi bổ sung xong thì bản ghi tự động chuyển sang Sheet Baocao để làm báo cáo, tất nhien là phải tính tổng luôn.
Cái này hơi khó hiểu, vậy thực sự thì sheet Tracuu có cần thiết không vậy? Nếu không thì bạn có thể lập một UserForm khác cho nút Tracuu trên sheet Main, khi nhập tài khoản vào đó thì nó hiện lên các thông tin đã có, nếu thông tin nào thiếu thì bạn bổ sung.
 
Đúng rồi, anh nói đúng ý của em.
 
File của Trí, chuyên gia về form là OK.
Mình xin gởi 1 file đơn giản hơn hiển nhiên thiếu sót hơn. Trong file có Ctr C của nhiều bạn, không nhớ nữa. Bạn xem và phản hồi để tôi học hỏi.
 

File đính kèm

  • FileTK-02.rar
    42.2 KB · Đọc: 174
Cái này tương đối hoàn chỉnh, có hướng dẫn sử dụng.
 

File đính kèm

  • KeToan 2.zip
    78.9 KB · Đọc: 363
Lần chỉnh sửa cuối:
anh có thể tạo một nút lệnh chuyển đổi từ Sheet baocao sang File Foxpro được không ạ.
 
- Theo tôi, dữ liệu của bạn không phức tạp nên dùng giải pháp nhập trên sheet là tốt nhất. Nếu nhập bằng form bạn phải thiết kế thêm phần "sửa".
- Tra cứu có thể làm như sau: Dùng sự kiện Worksheet_Change để trích dữ liệu từ Dulieu sang. Sau đây là ví dụ tra cứu theo TK
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tk_, dong1, dong2, dongcuoi
If Target.Address = "$D$2" Then
    Sheets("TraCuu").Range("A7:E14").ClearContents
    tk_ = Target.Value
    dong2 = 7
    dongcuoi = Sheets("Dulieu").Range("D5").End(xlDown).Row
    If dongcuoi > 5 Then
        For dong1 = 6 To dongcuoi
            If Sheets("Dulieu").Range("D" & dong1).Value = tk_ Then
                Sheets("TraCuu").Range("A" & dong2 & ":E" & dong2).Value = _
                Sheets("Dulieu").Range("A" & dong1 & ":E" & dong1).Value
                dong2 = dong2 + 1
            End If
        Next
    End If
End If
End Sub
Anh cho em hỏi em muốn thiết kế thêm phần "sữa" thì mã code ra sao ạ? Em cảm ơn.
 
Web KT
Back
Top Bottom