ورود

View Full Version : سوال: مانده گيري از مقدار كالا در يك تاريخ بر اساس مقادير موجودي كالا در جدول ديگر



mbaharieh
سه شنبه 23 خرداد 1396, 15:49 عصر
دوستان سلام خسته نباشيد.
من در حل يك مساله دچار مشكل شده ام و نيازمند كمك شماهستم.
دو جدول داريم :
يكي: كد قطعه /تاريخ نيازبه قطعه(عدد)/تعداد نياز به قطعه
در ديگري: كد قطعه/ موجودي قطعه
مشكل من اين است كه مي خواهم با يك پرس و جو (يا كد VB و ...) براي هر قطعه به ترتيب زمان نياز، موجودي كم شود و مانده نياز در يك ستون نشانداده شود(اگر نياز كمتر از موجودي باشد در آن تاريخ صفر منظور گردد) به اين شكل براي هر قطعه تاريخ نياز و مقدار مانده نياز پس از كسر موجودي مشخص مي شود:
كد قطعه/تاريخ نياز به قطعه(عدد)/مانده نياز (نياز منهاي موجودي)
فايل نمونه آن رو هم براي شما مي فرستم جدول يك جدول نيازها و جدول 2 جدول موجودي است و جدول 3 خروجي مورد نظر براي هر قطعه است.
اگه امكان داشته باشه من و راهنمايي كنيد.
باتشكر:قلب:

mazoolagh
شنبه 27 خرداد 1396, 11:44 صبح
فکر کنم اونچه که مورد نظر شما از "مانده نیاز" هست در واقع همون Target Quantity‌باشه.


145518
145519



Private Sub Calc()
Dim RSi As Recordset
Set RSi = CurrentDb.OpenRecordset("SELECT * FROM Inventory")
Dim RSt As Recordset
Dim Qty As Long
Dim QtySum As Long
Do While Not RSi.EOF
Qty = RSi!Quantity
QtySum = 0
Set RSt = CurrentDb.OpenRecordset("SELECT * FROM Transactions WHERE ItemID=" + CStr(RSi!ItemID) + " ORDER BY PDate")
Do While Not RSt.EOF
RSt.Edit
RSt!AvailableQuantity = Qty - QtySum
RSt!Rest = RSt!AvailableQuantity - RSt!Quantity
If RSt!AvailableQuantity > RSt!Quantity Then
RSt!TargetQuantity = 0
QtySum = QtySum + RSt!Quantity
Else
QtySum = 0
Qty = 0
RSt!TargetQuantity = Abs(RSt!Rest)
End If
RSt.Update
RSt.MoveNext
Loop
RSi.MoveNext
Loop
RSt.Close
Set RSt = Nothing
RSi.Close
Set RSi = Nothing
End Sub

mbaharieh
شنبه 27 خرداد 1396, 14:01 عصر
باسلام
از شما دوست عزيز سپاسگذارم
مشكل رفع شد شايد ندونيد چه كمك بزرگي كرديد. به هر حال از پاسخ بي دريغتان ممنونم.

mazoolagh
یک شنبه 28 خرداد 1396, 10:45 صبح
خوشحالم که پاسخ گرفتین
پاینده باشین