• Lỗi Name khi liên kết giữa listbox và subform
  • Lỗi Name khi liên kết giữa listbox và subform

    longkd_bvct@yahoo.com.vn > 30-07-19, 04:06 PM

    Chào mọi người ạ. Em tạo 1 form gồm 1 listbox liên kết với subform. Khi click vào listbox thì hiện record tương ứng ở subform qua macty.
    Nhưng trên subform lại bị lỗi #Name ạ. Em gửi file mọi người xem giúp ạ.Mọi người xem ở phần main_theodoislkh nhé

    https://drive.google.com/file/d/1A1jLMX5...sp=sharing
  • RE: Lỗi Name khi liên kết giữa listbox và subform

    ongke0711 > 30-07-19, 04:35 PM

    SubForm có Source là DanhMucHang.
    Câu lệnh gán source lại là DanhMucCty.
  • RE: Lỗi Name khi liên kết giữa listbox và subform

    longkd_bvct@yahoo.com.vn > 31-07-19, 04:57 PM

    (30-07-19, 04:35 PM)ongke0711 Đã viết: SubForm có Source là DanhMucHang.
    Câu lệnh gán source lại là DanhMucCty.
    Em đã làm được. cám ơn anh nhé.
    Giờ phát sinh thêm lỗi là cột số lượng còn lại=số lượng kế hoạch - số lượng sử dụng bị lỗi ạ.
    Nhờ anh xem giúp.

    https://drive.google.com/file/d/1A1jLMX5...sp=sharing
  • RE: Lỗi Name khi liên kết giữa listbox và subform

    ongke0711 > 31-07-19, 09:39 PM

    Bạn phải chú ý cái Record Source làm nguồn cho SubForm.
    Mặc định Record Source khi Form load là bạn dùng query (câu lệnh SQL) có thêm trường [SoLuongCL] là trường tính toán bạn thêm vô. Sau đó bạn xử lý khi click chọn trong listbox bên trái thì chỉ gán Record Source là toàn bộ các trường trong table [DanhMucHang] nhưng không có trường [SoLuongCL] => nó báo lỗi Name vì trường này không tồn tại sau khi gán. 
    Cách sửa là bạn copy toàn bộ câu lệnh SQL gốc của subform ban đầu khi Load lên đưa vô VBA + thêm điều kiện WHERE của bạn rồi mới gán Source.

    Một điều nữa là công thức tính [SoLuongCL]. Thay vì dùng IIF ...IsNull,.... => bạn dùng hàm Nz() để khử giá trị Null là được rồi. 

    SoLuongCL: IIF([SoLuongSD] Is Null, [SoLuongKH], [SoLuongKH] - [SoLuongSD])

    Đổi lại thành: 

    SoLuongCL: Nz([SoLuongKH])-Nz([SoLuongSD])

    ----------------------
    Private Sub lstcongty_Click()
        Dim sSQL As String
        sSQL = "SELECT DanhMucHang.MaHH, DanhMucHang.TenHH, DanhMucHang.Hamluong, DanhMucHang.DVT, DanhMucHang.DonGia, " & _
              "DanhMucHang.SoLuongKH, DanhMucHang.SoluongSD, Nz([SoLuongKH])-Nz([SoLuongSD]) AS SoluongCL, DanhMucHang.Macty " & _
              "FROM DanhMucCongTy INNER JOIN DanhMucHang ON DanhMucCongTy.macty = DanhMucHang.Macty " & _
              "WHERE DanhMucHang.Macty='" & Me.lstcongty.Column(0) & "'"

        Me.sub_theodoislkh.Form.RecordSource = sSQL
        Me.sub_theodoislkh.Requery
    End Sub

    ----------------------