اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

مطلوب عمل كود لتفكيك المنتجات المطلوبة الى خامات للشراء


Amr Ashraf

الردود الموصى بها

السلام عليكم .. اساتذتى الافاضل 

فى القاعدة المرفقة ستجد 5 جداول :

TblItems وفيه فهرس المواد الخام باكوادها

TblProducts وفيه فهرس للمنتجات التامة باكوادها

TblBom وفيه قائمة بالمكونات الخاصة بكل منتج تام مذكور فى جدول المنتجات وبجواره عدد القطع المستخدمة من المادة الخام لتكوين هذا المنتج

TblSalesReq وفيه يتم تسجيل طلبات البيع من المنتجات التامة بالكميات المطلوبة

TblTransactions جدول مطلوب ملئ بياناته بالشكل الذى سيتم شرحه تالياً 

على سبيل المثال مطلوب فى جدول طلبات البيع 3 أجهزة كمبيوتر Ci7 وبالتالى يجب شراء مكونات (المواد الخام) الخاصة بهذا المنتج لتجميعه وبيعه طبقا للمطلوب .. وبالتالى ستجد فى جدول TblTransactions انه مطلوب عدد 3 بروسيسور و عدد 6 رامة و عدد 3 لوحة أم ومذكور بجوارهم انهم مطلوبين للمنتج Computer Ci7 وذلك طبقا لقائمة المكونات الخاصة بهذا المنتج فى جدول TblBom  .

المطلوب 

نموذج به زر أمر Button يقوم بالبحث فى جدول TblSalesReq لمعرفة الكمية المطلوبة من كل منتج ثم يقوم بتحويلها لمواد خام طبقا للكميات المذكورة فى جدول TblBom ويقوم باضافة الناتج الى جدول TblTransactions كما شرحت فى المثال .

تنويه : يمكننى عمل المطلوب ولكن لمنتج واحد كل مرة عن طريق نموذج وبه جملة SQL .. ولكن المطلوب فى المبيعات الآن 300 منتج مثلا ستكون عملية مرهقة جدا لعملها 300 مرة .

فى حالة عدم وضوح الشرح برجاء عدم التردد فى السؤال .. مرفق قاعدة البيانات بصيغة 2003 وبالصيغة الحديثة 2010 فيما بعد .. جزاكم الله خير وبعتذر عن الاطالة

 

 

2003.mdb 2013.accdb

رابط هذا التعليق
شارك

2 ساعات مضت, Amr Ashraf said:

تنويه : يمكننى عمل المطلوب ولكن لمنتج واحد كل مرة عن طريق نموذج وبه جملة SQL .. ولكن المطلوب فى المبيعات الآن 300 منتج مثلا ستكون عملية مرهقة جدا لعملها 300 مرة .

هل هذه المنتجات ال 300 مسجلة مسبقا في جدول مثلا أو ......

رابط هذا التعليق
شارك

الان, kanory said:

هل هذه المنتجات ال 300 مسجلة مسبقا في جدول مثلا أو ......

شكرا على مرورك .. فى المثال انا وضعت 3 طلبيات فقط فى جدول TblSalesReq ولكن قد يكون هناك اكثر من ذلك قد يصل الى 300 وبالتالى الكود سيقوم بالبحث فى جدول TblSalesReq لمعرفة الكمية المطلوبة من كل منتج مهما كان عددهم  ثم يقوم بتحويلها لمواد خام طبقا للكميات المذكورة فى جدول TblBom ويقوم باضافة الناتج الى جدول TblTransactions كما شرحت فى المثال . 

رابط هذا التعليق
شارك

يبقى لزيادة التوضيح انظر للصور 

هذه هى الطلبيات المطلوبة  

1181581906_.PNG.2de0515982c7c9ee90410d60f7d4361f.PNG

 

الكود دخل على جدول المكونات ليبحث عن المكونات الخاصة بكل منتج وكمية كل مكون

1721292495_.PNG.0c9fee253d0a69dcb25c71de8fca7089.PNG

 

الكود استخرج المكونات الخاصة بكل منتج وضربها فى كمية المنتج المطلوبة فى الطلبيات وحولها لخامات فى جدول TblTransactions مثل الصورة .. وهذه هى النتيجة المطلوبة من الكود اذا تم تطبيقه على المثال المرفق

 

النتيجة.PNG

 

وبالتالى سنقوم بشراء هذه المكونات بالكميات المطلوبة لتجميع الاجهزة المطلوبة فى الطلبيات .. اتمنى تكون وضحت الفكرة ,, تحياتى

 

تم تعديل بواسطه Amr Ashraf
رابط هذا التعليق
شارك

الحمدلله تم التوصل الى حل بسيط بعد التفكير باللوغاريتمات اكتشفت ان الحل ابسط مما توقعت ☺️ .. فى البداية فكرة فى دالة For مزدوجة بالشكل التالى

Sub Double_Loop_Test()

   Dim SalesCount, X1, X2, BOMCount As Integer
   
   SalesCount = DCount("*", "TblSalesReq")
   BOMCount = DCount("*", "TblBom", "[Productcode]=TblSalesReq![Productcode]")
      
   For X1 = 1 To SalesCount
      For X2 = 1 To BOMCount
          
        
      Next X2
   Next X1

End Sub
End Sub

وصلت الى نقطة انى سأحتاج الى استعلام الحاق Append Query وحاولت عمل استعلام الحاق وقمت بربطه بكافة الجداول المتعلقة وكانت النتيجة هكذا 

INSERT INTO TblTransactions ( Code, item, QtyNeeded, ProductName )
SELECT TblBom.code, TblBom.Item, [QtyUsed]*[TblSalesReq].[Qty] AS TotalQtyNeeded, TblSalesReq.ProductDesc
FROM TblBom INNER JOIN TblSalesReq ON TblBom.productcode = TblSalesReq.ProductCode
GROUP BY TblBom.code, TblBom.Item, TblSalesReq.ProductDesc, TblBom.QtyUsed, TblSalesReq.Qty;

وعند تجربة استعلام الالحاق منفردا بدون اكواد قام بالنتيجة المرجوة وبسرعة جيدة :) :) 

تم ارفاق الطريقة فى مثال وذلك ليستفيد منها من يريد ذلك .. افتح النموذج واضغط الزر لتشغيل الاستعلام وسيقوم بالمطلوب .. دمتم بود ❤️

 

 

2003(2).mdb

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information