Cộng theo khoảng thời gian (4 người xem)

  • Thread starter Thread starter na_an
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

na_an

Thành viên chính thức
Tham gia
23/2/10
Bài viết
89
Được thích
4
Chào các bạn!
Mình có bảng dữ liệu mang tên tonghop với các trường: ngay, soxe, noinhap, klnhap, noixuat, klxuat, phamcap, ghichu.
Công việc của mình phải làm là tính tổng khối lượng nhập xuất của xe nào đó trong khoảng thời gian. Ví dụ: tính tổng khối lượng nhập xuất của xe 101 từ ngày 01/06/2010 đến 04/06/2010. Ở đây mỗi xe 1 ngày nhập xuất rất nhiều mình muốn đưa ra tổng cộng của một ngày sau đó mới tính tổng của khoảng thời gian.
Mình đã làm như sau:

Private Sub tktt_Click()
If IsDate(txtngay1) And IsDate(txtngay2) And IsNull(cbosoxe) = False Then
stdk1 = "select ngay,soxe,sum(klnhap),sum(klxuat), phamcap, ghichu from tonghop group by tonghop.ngay, tonghop.soxe, tonghop.phamcap, tonghop.ghichu having ((tonghop.ngay) Between " & "#" & Format$(Me.txtngay1, "mm/dd/yyyy") & "#" & " And " & "#" & Format$(Me.txtngay2, "mm/dd/yyyy") & "#" & ")and (soxe = " + "'" + Me.cbosoxe + "')"
Form_thongkektg.RecordSource = stdk1
Form_thongkektg.Requery
End If
End Sub

khi chạy thử thì báo lỗi #name? ở trường klnhap và klxuat.
Bạn nào biết xin sửa giúp mình lỗi này với. Mình đang rất cần.
Cảm ơn các bạn rất nhiều!
 
Chào các bạn!
Mình có bảng dữ liệu mang tên tonghop với các trường: ngay, soxe, noinhap, klnhap, noixuat, klxuat, phamcap, ghichu.
Công việc của mình phải làm là tính tổng khối lượng nhập xuất của xe nào đó trong khoảng thời gian. Ví dụ: tính tổng khối lượng nhập xuất của xe 101 từ ngày 01/06/2010 đến 04/06/2010. Ở đây mỗi xe 1 ngày nhập xuất rất nhiều mình muốn đưa ra tổng cộng của một ngày sau đó mới tính tổng của khoảng thời gian.
Mình đã làm như sau:

Private Sub tktt_Click()
If IsDate(txtngay1) And IsDate(txtngay2) And IsNull(cbosoxe) = False Then
stdk1 = "select ngay,soxe,sum(klnhap),sum(klxuat), phamcap, ghichu from tonghop group by tonghop.ngay, tonghop.soxe, tonghop.phamcap, tonghop.ghichu having ((tonghop.ngay) Between " & "#" & Format$(Me.txtngay1, "mm/dd/yyyy") & "#" & " And " & "#" & Format$(Me.txtngay2, "mm/dd/yyyy") & "#" & ")and (soxe = " + "'" + Me.cbosoxe + "')"
Form_thongkektg.RecordSource = stdk1
Form_thongkektg.Requery
End If
End Sub

khi chạy thử thì báo lỗi #name? ở trường klnhap và klxuat.
Bạn nào biết xin sửa giúp mình lỗi này với. Mình đang rất cần.
Cảm ơn các bạn rất nhiều!

Tôi thắt mắt là trên cùng form bạn vừa nhập liệu vừa truy vấn nó luôn (cộng theo mã, theo ngày...).
Thôi thì làm theo ý bạn:

Private Sub tktt_Click()
If IsDate(txtngay1) And IsDate(txtngay2) And IsNull(cbosoxe) = False Then
stdk1 = "SELECT tonghop.ngay, tonghop.soxe, Sum(tonghop.klnhap) AS klnhap, Sum(tonghop.klxuat) AS klxuat, tonghop.phamcap, tonghop.ghichu FROM tonghop GROUP BY tonghop.ngay, tonghop.soxe, tonghop.phamcap, tonghop.ghichu HAVING (((tonghop.ngay)>=[forms]![thongkektg].[txtngay1] And (tonghop.ngay)<=[forms]![thongkektg].[txtngay2]) AND ((tonghop.soxe) Like [forms]![thongkektg].[cbosoxe]));"
Form_thongkektg.RecordSource = stdk1
Form_thongkektg.Requery
End If

End Sub

Thêm 1 nút dùng để nhập liệu vào Table TongHop:

Private Sub Command27_Click()
Dim sr As String
sr = "SELECT * FROM tonghop;"
Form_thongkektg.RecordSource = sr
Form_thongkektg.Requery
End Sub

Bạn xem file đính kèm nhe
 

File đính kèm

Bạn giúp mình nút in của form thongkektg nữa được không? Mình làm không được.
 
Bạn giúp mình nút in của form thongkektg nữa được không? Mình làm không được.

Source cho "r10 chi tiet xe theo ngay":

SELECT tonghop.stt, tonghop.ngay, tonghop.soxe, tonghop.noinhap, tonghop.klnhap, tonghop.noixuat, tonghop.klxuat, tonghop.phamcap, tonghop.ghichu
FROM tonghop
WHERE (((tonghop.ngay)=[forms]![timxetheongay].[txtngay1]) AND ((tonghop.soxe) Like [Forms]![timxetheongay]![cbosxe]));

Source cho "r12 chi tiet xe theo khoang thoi gian":

SELECT tonghop.stt, tonghop.ngay, tonghop.soxe, tonghop.noinhap, tonghop.klnhap, tonghop.noixuat, tonghop.klxuat, tonghop.phamcap, tonghop.ghichu
FROM tonghop
WHERE (((tonghop.ngay)>=[forms]![timtheokhoangthoigian].[txttungay] And (tonghop.ngay)<=[forms]![timtheokhoangthoigian].[txtdenngay]) AND ((tonghop.soxe) Like [Forms]![timtheokhoangthoigian]![cbosx]));

Xem file đính kèm nhé
 

File đính kèm

Source cho "r10 chi tiet xe theo ngay":



Source cho "r12 chi tiet xe theo khoang thoi gian":



Xem file đính kèm nhé




Cảm ơn bạn nhé!
Mình đã làm được rồi. Cho mình hỏi thêm. Sao nút sửa và xoá mình lại vẫn không thực hiện được nhỉ. Ở bài bạn gửi mình đã thử vẫn có thể xoá và sửa được bình thường. Mình áp dụng như bạn làm vào bài của mình vậy mà khi mình sửa thi cứ bị báo lỗi: " so xe nay da co! xin nhap lai so xe khac!"(mặc dù không hề có số xe ấy tồn tại), hay khi mình ấn nút xoá thì nó báo " The record cannot be deleted or changed because table "tonghop" includes related record"
 
Cảm ơn bạn nhé!
Mình đã làm được rồi. Cho mình hỏi thêm. Sao nút sửa và xoá mình lại vẫn không thực hiện được nhỉ. Ở bài bạn gửi mình đã thử vẫn có thể xoá và sửa được bình thường. Mình áp dụng như bạn làm vào bài của mình vậy mà khi mình sửa thi cứ bị báo lỗi: " so xe nay da co! xin nhap lai so xe khac!"(mặc dù không hề có số xe ấy tồn tại), hay khi mình ấn nút xoá thì nó báo " The record cannot be deleted or changed because table "tonghop" includes related record"

Lỗi trên là liên quan đến mối quan hệ với các bảng khác, chứ không phải lỗi trùng khoá chính. Nếu bạn xoá nó thì nó sẽ xoá luôn các mối quan hệ với khoá chính của bảng.

Bạn chỉnh lại mối quan hệ theo hình sau là xoá được.

1.jpg
 
Lỗi trên là liên quan đến mối quan hệ với các bảng khác, chứ không phải lỗi trùng khoá chính. Nếu bạn xoá nó thì nó sẽ xoá luôn các mối quan hệ với khoá chính của bảng.

Bạn chỉnh lại mối quan hệ theo hình sau là xoá được.

View attachment 48472




Cảm ơn bạn rất nhiều!
Mình đã hoàn thành công việc rồi.
Rất rất cảm ơn bạn!
 
Cảm ơn bạn rất nhiều!
Mình đã hoàn thành công việc rồi.
Rất rất cảm ơn bạn!



Chào bạn!
Mình có vấn đề sau nhờ bạn giúp.
Với bài mình làm lần trước ấy. Giờ mình làm thêm bẫy lỗi cho chương trinh hoàn thiện. Nhưng mình không hiểu sao cùng là một yêu cầu bẫy lỗi mình làm ờ form thongkektg thì thực hiện được nhưng ở form timtheokhoangthoigian lai không thực hiện được. Lỗi mình bẫy là nếu như người dùng chọn số xe không có trong cbo thi báo lỗi và nếu nhập từ ngày lớn hơn đến ngày cũng báo lỗi, nếu không vào đến ngày cũng báo lỗi. Với những yêu cầu như thế mình làm ở form thongkektg thi ok nhưng khi sang form timtheokhoangthoigian thi không được. Mình không hiểu tại sao.
Code của form thongkektg

Private Sub txtngay2_AfterUpdate()
If ((txtngay1) > (txtngay2)) Then 'Neu tu ngay lon hon den ngay thi thong bao'
MsgBox "Chu y ban da nhap sai ngay", vbOKOnly, "Bao loi !"
SendKeys "+{TAB}", False
txtngay1.SetFocus
End If
End Sub

Private Sub txtngay2_LostFocus()
If (Not IsNull(txtngay1)) Then 'Neu tu ngay nhap roi ma den ngay chua co thi bao loi'
If (IsNull(txtngay2)) Then
MsgBox "Xin nhap Den ngay ", vbOKOnly, "Bao loi"
SendKeys "+{TAB}", False
End If
End If
End Sub


Code form timtheokhoangthoigian

Private Sub txtdenngay_AfterUpdate()
If ((txttungay) > (txtdenngay)) Then 'Neu tu ngay lon hon den ngay thi thong bao'
MsgBox "Chu y ban da nhap sai ngay", vbOKOnly, "Bao loi !"
SendKeys "+{TAB}", False
End If
End Sub

Private Sub txtdenngay_LostFocus()
If (NotIsNull(txttungay)) Then
If (IsNull(txtdengay)) Then
MsgBox "Xin nhap den ngay", vbOKOnly, "Thong bao"
SendKeys "+{tab}", False
End If
End If
End Sub

Bạn giúp mình xem lỗi ở đâu.
Mình cảm ơn!
 
Web KT

Bài viết mới nhất

Back
Top Bottom