nhập liệu bằng from

Liên hệ QC

Ký Hữu Trí

Thành viên mới
Tham gia
1/2/18
Bài viết
2
Được thích
0
Giới tính
Nam
nhờ các ace xem chỉ dùm sao mình nhập phiếu xuất không trùng nhưng lại bị báo trùng,
 

File đính kèm

  • BaiTapOn - v1.xlsm
    33.2 KB · Đọc: 17
nhờ các ace xem chỉ dùm sao mình nhập phiếu xuất không trùng nhưng lại bị báo trùng,
Trong Public Function kiem_tra(sophieu As String, dong As Integer) sửa kq = True và kq = False thành

kiem_tra = True và kiem_tra = False

hoặc

Sau Next thêm dòng

kiem_tra = kq

Nhưng code hiện hành phân biệt chữ cái hoa, thường. Tức nếu đã có PX1111 thì vẫn nhập được px1111 vì code cho là chưa có, không trùng. Nếu muốn không phân biệt hoa, thường thì vd. cả 2 vế so sánh tuồn qua hàm LCase

Nếu muốn sự không phân biệt có tác dụng trong toàn bộ module thì ở dòng đầu của module thêm

Option Compare Text
 
Mình xin góp vài í rất nhỏ ở những khía cạnh rất khác; Đó là các khâu từ thiết kế trang tính đến các thói quen khi lập trình,. . . .
a./ Những gớp của mình về thiết kế như sau:
1) Tên trang tính không nên là 'KHACHHANG', mà nên là 'KhachHang';
Nếu là mình thì nên này sẽ là: 'KHang'
Tương tự thay vì 'CHITIETXUAT' sao không là 'CTietX'
2) Mã hàng hóa nên có độ dày như nhau; Những mã đang ngắn ta nên thêm các kí tự "_' cho đủ dài
Điều này tránh những sai ngớ ngẫn khi gõ nhập liệu, do thuận tiện hơn trong kiểm tra, xoát xét
2.1) Nếu được 'Số fiếu' cũng nên có độ dài như nhau; Nếu cái nào ngắn hơn ta nên thêm bằng những "_"
3) Là mình thì tên các trường (cột) không như bạn:
'Mã khách hàng' => 'Mã KH'; 'Mã Hàng' => 'Mã HH',. . . . .
4) Hai trang 'KhachHang' & 'HHoa' ta nên nhập lại làm 1 & gợi í của mình về tên gọi trang này sẽ là 'DMuc'
Trong nớ, ta sẽ thiết lập 2 bảng; 1 bảng bắt dầu từ cột [A:A] & bảng còn lại bắt đầu từ cột [AA:AA]
4.1) TRpng trang 'KhHang' của bạn còn thiếu cột ghi lại ngày sinh của khách hàng;
Ta nên gởi lời chào nho nhỏ khi khách hàng đến ngày sinh nhật;
Ông bà ta nói: Lời chào cao hơn mân cỗ, fải không bạn?
b./ Vế những liên quan đến VBA:
1) Tên các tham biến hay các Control của bạn quá dài;
Nếu là mình thì thay vì 'th_so_phieu_xuat' sẽ là 'tbSoFXuat' hay chỉ là 'tbSoFX'; Hay thay vì 'cb_ma_hang_hoa' sao không là 'cbMaHH' hay 'cbMaHg'
2) Trong macro Private Sub cmd_add_Click() của bạn có dòng lệnh:
PHP:
    dong_cuoi = Sheets("CHITIETXUAT").Range("A100").End(xlUp).Row + 1
Con số 100 này tiềm ẩn sai lầm mà ta sẽ không dễ fát hiện sau 1 thời gian vận hành CSDL;
Là mình thì làm cách này:
Khai báo 1 Const xài chung trong toàn Form, như
Mã:
Const SoDg As Long =100
1 thời gian sau, ta chỉ việc khai tăng giá trị chứa trong Const này theo tiến trình tăng số dong dữ liệu là được ăn ngon, ngủ iên!
3) Macro này có thể rút gọn lại bằng cách đưa vô vòng lặp lặp lại 4 lần là được:
PHP:
Sub ve_khung(dong As Integer)
    Range("A" & dong & ":G" & dong).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
0    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous:        .ColorIndex = 0
        .TintAndShade = 0:            .Weight = xlThin
    End With
1    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous:        .ColorIndex = 0
        .TintAndShade = 0:            .Weight = xlThin
    End With
2    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous:        .ColorIndex = 0
        .TintAndShade = 0:           .Weight = xlThin
    End With
3    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous:        .ColorIndex = 0
        .TintAndShade = 0:           .Weight = xlThin
    End With
4    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous:        .ColorIndex = 0
        .TintAndShade = 0:           .Weight = xlThin
    End With

  With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub
 
Trong Public Function kiem_tra(sophieu As String, dong As Integer) sửa kq = True và kq = False thành

kiem_tra = True và kiem_tra = False

hoặc

Sau Next thêm dòng

kiem_tra = kq

Nhưng code hiện hành phân biệt chữ cái hoa, thường. Tức nếu đã có PX1111 thì vẫn nhập được px1111 vì code cho là chưa có, không trùng. Nếu muốn không phân biệt hoa, thường thì vd. cả 2 vế so sánh tuồn qua hàm LCase

Nếu muốn sự không phân biệt có tác dụng trong toàn bộ module thì ở dòng đầu của module thêm

Option Compare Text
CÁM ƠN BẠN NHIỀU NHA
Bài đã được tự động gộp:

CÁM ƠN BẠN NHIỀU NHA
 
Web KT
Back
Top Bottom