-
Bẫy lỗi Unbound Form (Nhập liệu)
pherotao > 13-12-17, 12:09 AM
1. Không biết e có đặt cú pháp sai hay ko mà nó cứ báo lỗi là "Phải cập nhật chi tiết hàng hóa" mặc dù e đã bấm cập nhật rồi.
Đây là đoạn code của e ạ:
Mã:Private Sub Ghi_Click()
If IsNull(txtMaHD) Then
MsgOut VniToUni(" Khoâng ñöôïc löu khi khoâng coù Maõ Hoùa Ñôn ! "), vbExclamation
Nhap.SetFocus
Exit Sub
Else
If IsNull(txtNgay) Then
MsgOut VniToUni(" Khoâng ñöôïc löu khi Chöa choïn Ngaøy ! "), vbExclamation
txtNgay.SetFocus
Exit Sub
Else
If IsNull(txtNgay) Then
MsgOut VniToUni(" Khoâng ñöôïc löu khi Chöa choïn Ngaøy ! "), vbExclamation
txtNgay.SetFocus
Exit Sub
Else
If IsNull(txtMaKH) Then
MsgOut VniToUni(" Khoâng ñöôïc löu khi Chöa choïn Khaùch haøng ! "), vbExclamation
txtMaKH.SetFocus
txtMaKH.Dropdown
Exit Sub
Else
If IsNull(txtMaNV) Then
MsgOut VniToUni(" Khoâng ñöôïc löu khi Chöa choïn Nhaân vieân ! "), vbExclamation
txtMaNV.SetFocus
txtMaNV.Dropdown
Exit Sub
Else
If IsNull(List_HH) Then
MsgOut VniToUni(" Phaûi Caäp nhaät Chi tieát Haøng Hoùa ! "), vbExclamation
Them.SetFocus
Exit Sub
Else
Set Db = CurrentDb
Set rs_ghiHD = Db.OpenRecordset("SELECT * FROM T_HoaDon_NX")
rs_ghiHD.AddNew
rs_ghiHD("MaHD") = Me.txtMaHD.Value
rs_ghiHD("SoHD") = Me.txtSoHD.Value
rs_ghiHD("LoaiHD") = Me.txtLoaiHD.Value
rs_ghiHD("Ngay") = Me.txtNgay.Value
rs_ghiHD("MaKH") = Me.txtMaKH.Value
rs_ghiHD("MaNV") = Me.txtMaNV.Value
rs_ghiHD("GhiChu") = Me.txtGhiChu.Value
rs_ghiHD.Update
rs_ghiHD.Close
DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO T_HangHoa_NX ( MaHD, MaHH, DonGia, SoLuong, ThanhTien ) SELECT T_HangHoa_NX_Temp.MaHD, T_HangHoa_NX_Temp.MaHH, T_HangHoa_NX_Temp.DonGia, T_HangHoa_NX_Temp.SoLuong, T_HangHoa_NX_Temp.ThanhTien FROM T_HangHoa_NX_Temp")
DoCmd.RunSQL ("DELETE T_HangHoa_NX_Temp.* FROM T_HangHoa_NX_Temp")
DoCmd.SetWarnings True
Me.txtMaHD = Null
Me.txtNgay = Date
Me.txtMaKH = Null
Me.txtDiaChi = Null
Me.txtMST = Null
Me.txtDienThoai = Null
Me.txtMaNV = Null
Me.txtGhiChu = Null
List_HH.Requery
End If
End If
End If
End If
End If
End If
End Sub
2. E có thử test listbox (List_HH) có rỗng hay không, nếu rỗng thì 0, ngược lại là 1. Nhưng kết quả trả về luôn là 1, mặc dù e đã xóa sạch trong listbox.
Nhờ anh / chị giúp e ạ! -
RE: Bẫy lỗi Unbound Form (Nhập liệu)
MTNQ > 13-12-17, 01:48 AM
Với list box thì bạn nên dùng thuộc tính ListCount:
Mã:If List_HH.ListCount = 0 Then
MsgOut VniToUni(" Phaûi Caäp nhaät Chi tieát Haøng Hoùa ! "), vbExclamation
Them.SetFocus
Exit Sub -
RE: Bẫy lỗi Unbound Form (Nhập liệu)
duynamvnn1208 > 13-12-17, 09:40 AM
Em đã thêm Exit Sub vào rồi thì để End IF ở chỗ dưới có tác dụng gì nữa đâu.
Em thử Code dưới xem sao
Mã:Private Sub Ghi_Click()
If IsNull(txtMaHD) Then
MsgOut VniToUni(" Khoang nooic lou khi khoang cou Mao Houa Non ! "), vbExclamation
Nhap.SetFocus
Exit Sub
ElseIf IsNull(txtNgay) Then
MsgOut VniToUni(" Khoang nooic lou khi Choa choin Ngaoy ! "), vbExclamation
txtNgay.SetFocus
Exit Sub
ElseIf IsNull(txtNgay) Then
MsgOut VniToUni(" Khoang nooic lou khi Choa choin Ngaoy ! "), vbExclamation
txtNgay.SetFocus
Exit Sub
ElseIf IsNull(txtMaKH) Then
MsgOut VniToUni(" Khoang nooic lou khi Choa choin Khauch haong ! "), vbExclamation
txtMaKH.SetFocus
txtMaKH.Dropdown
Exit Sub
ElseIf IsNull(txtMaNV) Then
MsgOut VniToUni(" Khoang nooic lou khi Choa choin Nhaan viean ! "), vbExclamation
txtMaNV.SetFocus
txtMaNV.Dropdown
Exit Sub
ElseIf IsNull(List_HH) Then
MsgOut VniToUni(" Phaui Caap nhaat Chi tieat Haong Houa ! "), vbExclamation
Them.SetFocus
Exit Sub
End If
Set Db = CurrentDb
Set rs_ghiHD = Db.OpenRecordset("SELECT * FROM T_HoaDon_NX")
rs_ghiHD.AddNew
rs_ghiHD("MaHD") = Me.txtMaHD
rs_ghiHD("SoHD") = Me.txtSoHD
rs_ghiHD("LoaiHD") = Me.txtLoaiHD
rs_ghiHD("Ngay") = Me.txtNgay
rs_ghiHD("MaKH") = Me.txtMaKH
rs_ghiHD("MaNV") = Me.txtMaNV
rs_ghiHD("GhiChu") = Me.txtGhiChu
rs_ghiHD.Update
rs_ghiHD.Close
DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO T_HangHoa_NX ( MaHD, MaHH, DonGia, SoLuong, ThanhTien ) SELECT T_HangHoa_NX_Temp.MaHD, T_HangHoa_NX_Temp.MaHH, T_HangHoa_NX_Temp.DonGia, T_HangHoa_NX_Temp.SoLuong, T_HangHoa_NX_Temp.ThanhTien FROM T_HangHoa_NX_Temp")
DoCmd.RunSQL ("DELETE T_HangHoa_NX_Temp.* FROM T_HangHoa_NX_Temp")
DoCmd.SetWarnings True
Me.txtMaHD = Null
Me.txtNgay = Date
Me.txtMaKH = Null
Me.txtDiaChi = Null
Me.txtMST = Null
Me.txtDienThoai = Null
Me.txtMaNV = Null
Me.txtGhiChu = Null
List_HH.Requery
End Sub