cuongtuyetcz > 11-01-11, 06:11 PM
Noname > 11-01-11, 07:34 PM
haquocquan > 11-01-11, 07:36 PM
SELECT hangnhap.mahang, hanghoa.tenhang, hanghoa.gianhap, Sum(hangnhap.soluongnhap) AS SLN, hangnhap.handung FROM hanghoa INNER JOIN hangnhap ON hanghoa.mahang=hangnhap.mahang WHERE (((hangnhap.handung) Between forms!Fhandung!cmbtungay And forms!fhandung!cmbdenngay)) GROUP BY hangnhap.mahang, hanghoa.tenhang, hanghoa.gianhap, hangnhap.handung;
Fhandungsub.Requery
cuongtuyetcz > 11-01-11, 08:19 PM
(11-01-11, 07:34 PM)Noname Đã viết: Góp ý thứ nhất là bạn nên để phần chuỗi sql riêng ra 1 biến string. Rồi gọi nó lên sau cho code mình tường minh hơn
Kinh nghiệm thứ 2 khi bạn phát biểu 1 câu sql thì bạn thử dùng lưới xem nó có chạy không đã.Mình nhìn sơ qua thấy bạn có phát biểu sum trong select, nhưng lại không có phát biểu group by. Như vậy cho dù câu sql này không có between thì cũng sai tuốt.
Làm thử lại rùi post câu sql của bạn lên mình sửa tiếp!
cuongtuyetcz > 11-01-11, 08:30 PM
(11-01-11, 07:36 PM)haquocquan Đã viết: Để đơn giản hóa, bạn chỉ cần đặt Record Source của Fhandungsub là:
Mã:SELECT hangnhap.mahang, hanghoa.tenhang, hanghoa.gianhap, Sum(hangnhap.soluongnhap) AS SLN, hangnhap.handung FROM hanghoa INNER JOIN hangnhap ON hanghoa.mahang=hangnhap.mahang WHERE (((hangnhap.handung) Between forms!Fhandung!cmbtungay And forms!fhandung!cmbdenngay)) GROUP BY hangnhap.mahang, hanghoa.tenhang, hanghoa.gianhap, hangnhap.handung;
và sự kiện AfterUpdate của cmbdenngay chỉ đơn giản là:
Mã:Fhandungsub.Requery
Noname > 11-01-11, 09:32 PM
(11-01-11, 08:19 PM)cuongtuyetcz Đã viết:(11-01-11, 07:34 PM)Noname Đã viết: Góp ý thứ nhất là bạn nên để phần chuỗi sql riêng ra 1 biến string. Rồi gọi nó lên sau cho code mình tường minh hơn
Kinh nghiệm thứ 2 khi bạn phát biểu 1 câu sql thì bạn thử dùng lưới xem nó có chạy không đã.Mình nhìn sơ qua thấy bạn có phát biểu sum trong select, nhưng lại không có phát biểu group by. Như vậy cho dù câu sql này không có between thì cũng sai tuốt.
Làm thử lại rùi post câu sql của bạn lên mình sửa tiếp!
mình chưa hiểu góp ý thứ nhất của bạn,bạn có thể ví dụ không.
mình đã thử lại theo gợi ý của bạn, ở trên lưới query ,record source của Fhandungsub ,thì lọc tốt không vấn đề. Còn trên Fhandung thi câu lệnh của mình là
set rs = db.openrecordset(" select hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap " & _
" sum ([hangnhap.soluongnhap]) as SLN,hangnhap.handung " & _
" From hanghoa inner join hangnhap on hanghoa.mahang = hangnhap.mahang " & _
"where ((hangnhap.handung) between " & me.cmbtungay.value & " and " & me.cmbdenngay.value & ")
" group by hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap,hangnhap.handung " )
set Fhandungsub.form.recordset = rs
Fhandungsub.requery
ban xem giúp và chỉ giáo , cám ơn bạn.
Dim Sql As String
Sql = "select hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap, sum ([hangnhap.soluongnhap]) as SLN,hangnhap.handung "
Sql = Sql & " From hanghoa inner join hangnhap on hanghoa.mahang = hangnhap.mahang "
Sql = Sql & "where ((hangnhap.handung) between #" & Me.cmbtungay.Value & "# and #" & Me.cmbdenngay.Value & "#)"
Sql = Sql & " group by hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap,hangnhap.handung "
Set rs = db.OpenRecordset(Sql)
Set Fhandungsub.Form.Recordset = rs
Fhandungsub.Requery
cuongtuyetcz > 13-01-11, 02:28 AM
(11-01-11, 09:32 PM)Noname Đã viết:(11-01-11, 08:19 PM)cuongtuyetcz Đã viết:(11-01-11, 07:34 PM)Noname Đã viết: Góp ý thứ nhất là bạn nên để phần chuỗi sql riêng ra 1 biến string. Rồi gọi nó lên sau cho code mình tường minh hơn
Kinh nghiệm thứ 2 khi bạn phát biểu 1 câu sql thì bạn thử dùng lưới xem nó có chạy không đã.Mình nhìn sơ qua thấy bạn có phát biểu sum trong select, nhưng lại không có phát biểu group by. Như vậy cho dù câu sql này không có between thì cũng sai tuốt.
Làm thử lại rùi post câu sql của bạn lên mình sửa tiếp!
mình chưa hiểu góp ý thứ nhất của bạn,bạn có thể ví dụ không.
mình đã thử lại theo gợi ý của bạn, ở trên lưới query ,record source của Fhandungsub ,thì lọc tốt không vấn đề. Còn trên Fhandung thi câu lệnh của mình là
set rs = db.openrecordset(" select hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap " & _
" sum ([hangnhap.soluongnhap]) as SLN,hangnhap.handung " & _
" From hanghoa inner join hangnhap on hanghoa.mahang = hangnhap.mahang " & _
"where ((hangnhap.handung) between " & me.cmbtungay.value & " and " & me.cmbdenngay.value & ")
" group by hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap,hangnhap.handung " )
set Fhandungsub.form.recordset = rs
Fhandungsub.requery
ban xem giúp và chỉ giáo , cám ơn bạn.
Góp ý thứ nhất, có nghĩa là câu lệnh sql của bạn được lưu trong một biến String. Biến string này bạn dễ dàng kiểm soát được nội dung của nó bằng cách gọi hàm msgbox để hiện thị nó
Cụ thể thế này:
Mã:Dim Sql As String
Sql = "select hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap, sum ([hangnhap.soluongnhap]) as SLN,hangnhap.handung "
Sql = Sql & " From hanghoa inner join hangnhap on hanghoa.mahang = hangnhap.mahang "
Sql = Sql & "where ((hangnhap.handung) between #" & Me.cmbtungay.Value & "# and #" & Me.cmbdenngay.Value & "#)"
Sql = Sql & " group by hangnhap.mahang,hanghoa.tenhang,hanghoa.gianhap,hangnhap.handung "
Sau đó, bạn mới tiến hành open sql và gán nó cho sub form:
Mã:Set rs = db.OpenRecordset(Sql)
Set Fhandungsub.Form.Recordset = rs
Fhandungsub.Requery
Giờ bạn thử lại xem!
Chúc may mắn
Noname > 13-01-11, 11:10 AM
(13-01-11, 02:28 AM)cuongtuyetcz Đã viết: noname à , mình đã thử theo cách bạn chỉ nhưng vẫn không được. nó vẫn báo
rs = nothing và vẫn có lỗi The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect. (Error 3141)
tiếng anh của mình kém lên không hiểu được lỗi gì, bạn xem hộ nhé . Diky