• Bẫy lỗi Unbound Form (Nhập liệu)
  • 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