Amr Ashraf قام بنشر سبتمبر 21, 2020 قام بنشر سبتمبر 21, 2020 السلام عليكم .. اساتذتى الافاضل فى القاعدة المرفقة ستجد 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
kanory قام بنشر سبتمبر 21, 2020 قام بنشر سبتمبر 21, 2020 2 ساعات مضت, Amr Ashraf said: تنويه : يمكننى عمل المطلوب ولكن لمنتج واحد كل مرة عن طريق نموذج وبه جملة SQL .. ولكن المطلوب فى المبيعات الآن 300 منتج مثلا ستكون عملية مرهقة جدا لعملها 300 مرة . هل هذه المنتجات ال 300 مسجلة مسبقا في جدول مثلا أو ......
Amr Ashraf قام بنشر سبتمبر 21, 2020 الكاتب قام بنشر سبتمبر 21, 2020 الان, kanory said: هل هذه المنتجات ال 300 مسجلة مسبقا في جدول مثلا أو ...... شكرا على مرورك .. فى المثال انا وضعت 3 طلبيات فقط فى جدول TblSalesReq ولكن قد يكون هناك اكثر من ذلك قد يصل الى 300 وبالتالى الكود سيقوم بالبحث فى جدول TblSalesReq لمعرفة الكمية المطلوبة من كل منتج مهما كان عددهم ثم يقوم بتحويلها لمواد خام طبقا للكميات المذكورة فى جدول TblBom ويقوم باضافة الناتج الى جدول TblTransactions كما شرحت فى المثال .
Amr Ashraf قام بنشر سبتمبر 21, 2020 الكاتب قام بنشر سبتمبر 21, 2020 (معدل) يبقى لزيادة التوضيح انظر للصور هذه هى الطلبيات المطلوبة الكود دخل على جدول المكونات ليبحث عن المكونات الخاصة بكل منتج وكمية كل مكون الكود استخرج المكونات الخاصة بكل منتج وضربها فى كمية المنتج المطلوبة فى الطلبيات وحولها لخامات فى جدول TblTransactions مثل الصورة .. وهذه هى النتيجة المطلوبة من الكود اذا تم تطبيقه على المثال المرفق وبالتالى سنقوم بشراء هذه المكونات بالكميات المطلوبة لتجميع الاجهزة المطلوبة فى الطلبيات .. اتمنى تكون وضحت الفكرة ,, تحياتى تم تعديل سبتمبر 21, 2020 بواسطه Amr Ashraf
Amr Ashraf قام بنشر سبتمبر 21, 2020 الكاتب قام بنشر سبتمبر 21, 2020 الحمدلله تم التوصل الى حل بسيط بعد التفكير باللوغاريتمات اكتشفت ان الحل ابسط مما توقعت ☺️ .. فى البداية فكرة فى دالة 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 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.