Bẫy lỗi tại subform.

hoangnghi

Sơ cấp
Em mới tập tành làm quen với access. Đang tập làm một ứng dụng quản lý kho. Em đang tạo một phiếu nhập kho dạng main/subform. Subform ở dạng datasheet để nhập chi tiết từng mặt hàng nhập kho, em muốn người dùng khi quên nhập mã hàng mà nhấn Enter thì chương trình báo lỗi chưa nhập mã hàng và setfocus lại trường mã hàng. em không biết làm sao để bẫy lỗi cho subform ở sự kiện lost focus của mã hàng được. Nhờ các anh chỉ giáo!!!!
 
Đơn giản hơn trong phần thiết kế tbl tại chỗ
Validation Rule : Is Not Null Or Len("MaHH")<>0 or ...
Validation Text : Không để trống mã hàng
-----------
như vậy như được ah
 
Thanks nguoiconxunui nhé! Nhưng như thế vẫn chưa đúng theo ý của mình vì mình muốn người dùng khi enter qua txtmahang mà không nhập giá trị thì chương trình sẽ hỏi "Có nhập tiếp không?" vbyesno. Nếu không thì thoát ra khỏi subform, có thì tiếp tục setfocus tại txtmahang để nhập tiếp
 
Thanks nguoiconxunui nhé! Nhưng như thế vẫn chưa đúng theo ý của mình vì mình muốn người dùng khi enter qua txtmahang mà không nhập giá trị thì chương trình sẽ hỏi "Có nhập tiếp không?" vbyesno. Nếu không thì thoát ra khỏi subform, có thì tiếp tục setfocus tại txtmahang để nhập tiếp

Trong txtMahang chọn properties , trong sự kiện lost forcus :
Mã:
if txtMahang ="" or isNull("txtMahang") then
mess=msgbox("Ma hàng trống , bạn muốn tiếp tục bỏ qua không", vbYesNo, "Thông Báo!")
       if mess=no then
                  txtMahang.setforcus
       end if
end if
thử coai được hem, chú ý đó mới là sự kiên lost focus thôi ah, bạn muốn những sự kiện nào nữa thì thêm vào tương ứng.
 
Trong txtMahang chọn properties , trong sự kiện lost forcus :
Mã:
if txtMahang ="" or isNull("txtMahang") then
mess=msgbox("Ma hàng trống , bạn muốn tiếp tục bỏ qua không", vbYesNo, "Thông Báo!")
       if mess=no then
                  txtMahang.setforcus
       end if
end if
thử coai được hem, chú ý đó mới là sự kiên lost focus thôi ah, bạn muốn những sự kiện nào nữa thì thêm vào tương ứng.

Hix... Có vẻ không ổn bạn ơi, nó không thể nào setfocus trở lại txtmahang được. Hình như là không được phép vì đang ở chính sự kiện lost focus của nó thì phải. Không biết bạn có ý kiến nào khác không. Thanks bạn nhiều!
 
Hix... Có vẻ không ổn bạn ơi, nó không thể nào setfocus trở lại txtmahang được. Hình như là không được phép vì đang ở chính sự kiện lost focus của nó thì phải. Không biết bạn có ý kiến nào khác không. Thanks bạn nhiều!

Bạn thử đặt ở sự kiện On Enter hoặc On Exit xem sao
 
Hix... Có vẻ không ổn bạn ơi, nó không thể nào setfocus trở lại txtmahang được. Hình như là không được phép vì đang ở chính sự kiện lost focus của nó thì phải. Không biết bạn có ý kiến nào khác không. Thanks bạn nhiều!

dùng cái này vậy : (trogn sự kiện Exit)
Mã:
Private Sub txtMahang_Exit(Cancel As Integer)
If IsNull(txtMahang) Or txtMahang = "" Then
    mess = MsgBox("Ban bo qua khong", vbYesNo, "thong bao")
    If mess = vbNo Then
    Cancel = 1
     End If
End If
End Sub
 
dùng cái này vậy : (trogn sự kiện Exit)
Mã:
Private Sub txtMahang_Exit(Cancel As Integer)
If IsNull(txtMahang) Or txtMahang = "" Then
    mess = MsgBox("Ban bo qua khong", vbYesNo, "thong bao")
    If mess = vbNo Then
    Cancel = 1
     End If
End If
End Sub

Thanks bạn rất nhiều. Mình làm được rồi!!!!
 
Back
Top