Bẫy lỗi tại subform.

  • Thread starter hoangnghi
  • Ngày gửi
H

hoangnghi

Guest
5/2/09
10
0
0
41
HCM
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!!!!
 
Khóa học Quản trị dòng tiền
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Đơ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
 
H

hoangnghi

Guest
5/2/09
10
0
0
41
HCM
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
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
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.
 
H

hoangnghi

Guest
5/2/09
10
0
0
41
HCM
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!
 
H

haquocquan

Trung cấp
19/4/08
68
0
6
Bắc Giang
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
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
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
 
H

hoangnghi

Guest
5/2/09
10
0
0
41
HCM
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!!!!
 

Xem nhiều