cuongvan09 > 17-06-12, 01:32 PM
cuongvan09 > 18-06-12, 10:15 AM
Xuân Thanh > 18-06-12, 10:38 AM
cuongvan09 > 18-06-12, 10:47 AM
(18-06-12, 10:38 AM)Xuân Thanh Đã viết: 1/ Chưa xem file nhưng đọc lỗi thông báo là access không tim thấy Ngay trong form Xuat. Bạn kiểm tra lại, có thể tên đã thay đổi
2/ Muốn tìm giá nhập, dùng Dlookup mà tìm = Dlookup("GN","tblHang","Mahang=cboHang")
3/ Muốn biết tồn của hàng trước khi xuất, lấy tổng nhập trừ tổng xuất là ra thui mà
Thân
Xuân Thanh > 18-06-12, 10:58 AM
cuongvan09 > 18-06-12, 11:04 AM
(18-06-12, 10:58 AM)Xuân Thanh Đã viết: Cái đó là cái nào? một hay cả ba? Hướng dẫn thế là tỷ mỉ rồi đây, bạn theo đó mà làm chắc chắn sẽ được
Nói thêm : Đừng lạm dụng hàm quá khi ta chưa thực sự hiểu về nó. Cứ query mà làm, chỉ khi nào query không thể làm được hảy sử dụng hàm
Thân mến
Xuân Thanh > 18-06-12, 12:14 PM
Private Sub Masp_AfterUpdate()
'Kiem tra mat hang da co trong phieu chua?
If DCount("Masp", "Chitietpx", "Masp='" & Masp & _
"' and Maphieuxuat='" & Maphieuxuat & "'") > 1 Then
MsgBox "Mat hang nay da xuat, xin vui long xem lai"
DoCmd.RunCommand acCmdUndo 'Bo viec da chon
Exit Sub
End If
DonGia = TimGBan(Forms!Frm_PXUAT!Ngayxuat, Masp)
Soluongxuat = 0
Me.Soluongxuat.SetFocus
Me.Refresh
End Sub
Private Sub Soluongxuat_AfterUpdate()
Dim rs As Recordset
Dim qr As QueryDef
Set qr = CurrentDb.QueryDefs("qryTonHang")
qr.Parameters("Ma") = Me.Masp
Set rs = qr.OpenRecordset
Ton = rs!TonCuoi
If Ton = 0 Then
MsgBox "Hang trong kho da het"
Exit Sub
ElseIf Soluongxuat > Ton Then
MsgBox "Hang ton kho chi con " & Ton
Soluongxuat = Ton
SendKeys "+{Tab}"
Else
Me.Refresh
Me.Recalc
Forms!Frm_PXUAT!SOTIEN = Me.TCong
End If
End Sub
SELECT Hang.Masp, Hang.TenSP, Hang.Soluong AS TonDau, Sum(IIf([Soluongnhap]>0,[Soluongnhap],0)) AS Nhap, Sum(IIf([Soluongxuat]>0,[Soluongxuat],0)) AS Xuat, [TonDau]+[Nhap]-[Xuat] AS TonCuoi
FROM (Hang LEFT JOIN qryNhap ON Hang.Masp = qryNhap.Masp) LEFT JOIN qryXuat ON Hang.Masp = qryXuat.Masp
GROUP BY Hang.Masp, Hang.TenSP, Hang.Soluong
HAVING (((Hang.Masp)=[Ma]));
cuongvan09 > 18-06-12, 02:14 PM
(18-06-12, 12:14 PM)Xuân Thanh Đã viết: Sửa cho cái frm_PXUAT, những cái khác tự xem và tự sửaem cám ơn anh nhiều nha
Mã PHP:Private Sub Masp_AfterUpdate()
'Kiem tra mat hang da co trong phieu chua?
If DCount("Masp", "Chitietpx", "Masp='" & Masp & _
"' and Maphieuxuat='" & Maphieuxuat & "'") > 1 Then
MsgBox "Mat hang nay da xuat, xin vui long xem lai"
DoCmd.RunCommand acCmdUndo 'Bo viec da chon
Exit Sub
End If
DonGia = TimGBan(Forms!Frm_PXUAT!Ngayxuat, Masp)
Soluongxuat = 0
Me.Soluongxuat.SetFocus
Me.Refresh
End Sub
Private Sub Soluongxuat_AfterUpdate()
Dim rs As Recordset
Dim qr As QueryDef
Set qr = CurrentDb.QueryDefs("qryTonHang")
qr.Parameters("Ma") = Me.Masp
Set rs = qr.OpenRecordset
Ton = rs!TonCuoi
If Ton = 0 Then
MsgBox "Hang trong kho da het"
Exit Sub
ElseIf Soluongxuat > Ton Then
MsgBox "Hang ton kho chi con " & Ton
Soluongxuat = Ton
SendKeys "+{Tab}"
Else
Me.Refresh
Me.Recalc
Forms!Frm_PXUAT!SOTIEN = Me.TCong
End If
End Sub
Sửa cái qryTonHang lại thế này
Mã PHP:SELECT Hang.Masp, Hang.TenSP, Hang.Soluong AS TonDau, Sum(IIf([Soluongnhap]>0,[Soluongnhap],0)) AS Nhap, Sum(IIf([Soluongxuat]>0,[Soluongxuat],0)) AS Xuat, [TonDau]+[Nhap]-[Xuat] AS TonCuoi
FROM (Hang LEFT JOIN qryNhap ON Hang.Masp = qryNhap.Masp) LEFT JOIN qryXuat ON Hang.Masp = qryXuat.Masp
GROUP BY Hang.Masp, Hang.TenSP, Hang.Soluong
HAVING (((Hang.Masp)=[Ma]));
Như vậy là giải quyết xong luôn cả câu 3 rồi nhé. Hang nhập cũng lam như hàng xuất. Lấy được giá xuất thì cũng lấy được giá nhập chứ
cuongvan09 > 18-06-12, 02:41 PM
(18-06-12, 02:14 PM)cuongvan09 Đã viết:uh mà anh ơi cho e hỏi thêm 1 cái nữa là tại sao khi e cập nhật giá bán mới vào form giaban rồi lưu lại mà sao khi e xuất hàng thì nó vẫn lấy là giá bán cữ chứ nó ko lấy giá bán mới đc vậy a,rồi giờ thì mình phải làm sao đây a,sắn đây a hướng dẫn e làm cái form nhập hàng luôn đi a, e làm hoài ma ko dc a oi, cái form nhập hàng là nó phải lấy giá nhập trong table hang để điền giá nhập vào đơn giá luôn, a giúp e với(18-06-12, 12:14 PM)Xuân Thanh Đã viết: Sửa cho cái frm_PXUAT, những cái khác tự xem và tự sửa
Mã PHP:Private Sub Masp_AfterUpdate()
'Kiem tra mat hang da co trong phieu chua?
If DCount("Masp", "Chitietpx", "Masp='" & Masp & _
"' and Maphieuxuat='" & Maphieuxuat & "'") > 1 Then
MsgBox "Mat hang nay da xuat, xin vui long xem lai"
DoCmd.RunCommand acCmdUndo 'Bo viec da chon
Exit Sub
End If
DonGia = TimGBan(Forms!Frm_PXUAT!Ngayxuat, Masp)
Soluongxuat = 0
Me.Soluongxuat.SetFocus
Me.Refresh
End Sub
em cám ơn anh nhiều nha
Private Sub Soluongxuat_AfterUpdate()
Dim rs As Recordset
Dim qr As QueryDef
Set qr = CurrentDb.QueryDefs("qryTonHang")
qr.Parameters("Ma") = Me.Masp
Set rs = qr.OpenRecordset
Ton = rs!TonCuoi
If Ton = 0 Then
MsgBox "Hang trong kho da het"
Exit Sub
ElseIf Soluongxuat > Ton Then
MsgBox "Hang ton kho chi con " & Ton
Soluongxuat = Ton
SendKeys "+{Tab}"
Else
Me.Refresh
Me.Recalc
Forms!Frm_PXUAT!SOTIEN = Me.TCong
End If
End Sub
Sửa cái qryTonHang lại thế này
Mã PHP:SELECT Hang.Masp, Hang.TenSP, Hang.Soluong AS TonDau, Sum(IIf([Soluongnhap]>0,[Soluongnhap],0)) AS Nhap, Sum(IIf([Soluongxuat]>0,[Soluongxuat],0)) AS Xuat, [TonDau]+[Nhap]-[Xuat] AS TonCuoi
FROM (Hang LEFT JOIN qryNhap ON Hang.Masp = qryNhap.Masp) LEFT JOIN qryXuat ON Hang.Masp = qryXuat.Masp
GROUP BY Hang.Masp, Hang.TenSP, Hang.Soluong
HAVING (((Hang.Masp)=[Ma]));
Như vậy là giải quyết xong luôn cả câu 3 rồi nhé. Hang nhập cũng lam như hàng xuất. Lấy được giá xuất thì cũng lấy được giá nhập chứ