عمر ضاحى قام بنشر يونيو 27, 2023 قام بنشر يونيو 27, 2023 السلام عليكم اساتذتى الكرام اولا وقبل اى شئ كل عام وحضراتكم بخير ويتقبل الله منا ومنكم صالح الاعمال مرفق الى حضرتكم محاولتى فى تطبيق نظام FIFO (الوارد اولا يصرف اولا) وانا مش عارف اظبطه انا اريد ان يتم تحديث جدول الـ FifoStock فى كل مره افتح النموذج frmFifo بكل ما تم على المخزون من حركات مشكلتى الاكبر انى مش عارف اظهر المرتجعات فى جدول FifoStock اذا كان هناك احد يمكنه ان يساعدنى او حتى لو هناك طرق اخره اكثر تيسير من هذه الطريقه اكون شاكر له ولكم جزيل الشكر مقدما FIFO Access.rar
عمر ضاحى قام بنشر يونيو 30, 2023 الكاتب قام بنشر يونيو 30, 2023 للرفع رفع الله قدركم بمساعدة ChatGPT اعطاني الكود لكن فيه اخطأ مش عارف ايه هي هل يمكن احد يجرب الكود ويراجع ما الخطأ بعد اذن حضرتكم Option Compare Database Option Explicit Sub UpdateFIFO() Dim db As DAO.Database Dim rsInvHead As DAO.Recordset Dim rsInvDetails As DAO.Recordset Dim rsFIFOQty As DAO.Recordset Dim strSQL As String Dim InvID As Long Dim ItemID As Long Dim Qty As Double Dim PaPrice As Double Dim SaPrice As Double Dim FIFOQty As Double ' Open the database Set db = CurrentDb ' Clear the TblFIFIQty table strSQL = "DELETE FROM TblFIFIQty" db.Execute strSQL ' Open the recordsets Set rsInvHead = db.OpenRecordset("SELECT * FROM TblInvHead") Set rsInvDetails = db.OpenRecordset("SELECT * FROM TblInvDetails") Set rsFIFOQty = db.OpenRecordset("SELECT * FROM TblFIFIQty") ' Loop through the TblInvHead records rsInvHead.MoveFirst Do Until rsInvHead.EOF InvID = rsInvHead!InvID ' Loop through the TblInvDetails records for the current InvID rsInvDetails.MoveFirst rsInvDetails.FindFirst "LInvID = " & InvID If Not rsInvDetails.BOF Then Do Until rsInvDetails.EOF Or rsInvDetails!LInvID <> InvID ItemID = rsInvDetails!LItemID Qty = rsInvDetails!Qty PaPrice = rsInvDetails!PaPrice SaPrice = rsInvDetails!SaPrice ' Calculate the FIFO quantity FIFOQty = GetFIFOQty(db, ItemID, InvID) ' Update the TblFIFIQty table rsFIFOQty.AddNew rsFIFOQty!InvID = InvID rsFIFOQty!LItemID = ItemID rsFIFOQty!InvDate = rsInvHead!InvDate rsFIFOQty!QtyPay = Qty rsFIFOQty!QtyBackPay = 0 rsFIFOQty!QtySales = 0 rsFIFOQty!QtyBackSales = 0 rsFIFOQty!PayPrise = PaPrice rsFIFOQty!SalesPrise = SaPrice rsFIFOQty!done = IIf(Qty <= FIFOQty, True, False) rsFIFOQty.Update rsInvDetails.MoveNext Loop End If rsInvHead.MoveNext Loop ' Close the recordsets rsInvHead.Close rsInvDetails.Close rsFIFOQty.Close Set rsInvHead = Nothing Set rsInvDetails = Nothing Set rsFIFOQty = Nothing ' Close the database db.Close Set db = Nothing MsgBox "FIFO quantities calculated successfully!" End Sub 'يمكنك استخدام الكود التالي في VBA لحساب الأرصدة بنظام FIFO وتخزينها في جدول TblFIFIQty: Function GetFIFOQty(db As DAO.Database, ItemID As Long, InvID As Long) As Double Dim rsFIFOQty As DAO.Recordset Dim strSQL As String Dim FIFOQty As Double ' Open the TblFIFIQty recordset Set rsFIFOQty = db.OpenRecordset("SELECT * FROM TblFIFIQty WHERE LItemID = " & ItemID & " AND Done = False ORDER BY InvDate") ' Loop through the TblFIFIQty records and calculate the FIFO quantity If Not rsFIFOQty.EOF Then rsFIFOQty.MoveFirst End If Do Until rsFIFOQty.EOF FIFOQty = FIFOQty + rsFIFOQty!QtyPay - rsFIFOQty!QtySales If rsFIFOQty!InvID = InvID Then Exit Do End If rsFIFOQty.MoveNext Loop rsFIFOQty.Close Set rsFIFOQty = Nothing GetFIFOQty = FIFOQty End Function 'يرجى استبدال اسماء الجداول والحقول في الكود بالأسماء الصحيحة المستخدمة في قاعدة البيانات الخاصة بك.
محب العقيدة قام بنشر يوليو 2, 2023 قام بنشر يوليو 2, 2023 عندي مشاركة في كيفية حساب الFIFO يمكنك البحث عنها وعندما يعطيك CHATGPT كود فهو يعطيك بناءا على الذي سالته اياه واذا ام تكن لديك خلفية حول خوارزمية الوارد اولا صادر اولا وال recordset فانك ستضيع بين الاكواد
عمر ضاحى قام بنشر يوليو 13, 2023 الكاتب قام بنشر يوليو 13, 2023 في 2/7/2023 at 10:45, محب العقيدة said: عندي مشاركة في كيفية حساب الFIFO يمكنك البحث عنها المشكلة ان كل ما وجدة يتعامل مع حالتين فقط (البيع والشراء) لكم ما اريده ان يتعامل مع البيع والشراء والمرتجع البيع والمرتجع الشراء (4 حالات) حتى لما حبيت اطور الكود الموجود ما عرفت اظبطها خالصا وفعلا تهت فى الكود في 2/7/2023 at 10:45, محب العقيدة said: واذا ام تكن لديك خلفية حول خوارزمية الوارد اولا صادر اولا وال recordset فانك ستضيع بين الاكواد هذه هى مشكلتى فعلا انا بحاول اوصل لحل وان شاء الله سيهدينى ربي الي الحل او من يساعدنى على الوصول للحل ان شاء الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.