منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
دالة DSum والجمع بالناقص - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94)
+--- قسم : مايكرسوفت أكسيس Microsoft Access (http://vb4arb.com/vb/forumdisplay.php?fid=170)
+--- الموضوع : دالة DSum والجمع بالناقص (/showthread.php?tid=30201)



دالة DSum والجمع بالناقص - slamco2000 - 07-07-19

السلام عليكم ورحمة الله وبركاته

هل ممكن مساعدتي في عملية الجمع المدرجة في الصورة المرفقة كالتالي

الجمع الموجود :

50
130
250

المطلوب هو
50
50-80=30
80-120=40

50
30
40

فهل ممكن المساعدة في ذلك

اسم الجدول: Vehicle Recipient
اسم الحقل: KM_No

الدالة المستخدمة حالياً:

DSum: DSum(" [KM_No] ","Vehicle Recipient","[ID2]<=" & [ID2] & " ")


أرجو الإفادة والمساعدة في ذلك مع الشكر الجزيل 




RE: دالة DSum والجمع بالناقص - elgokr - 07-07-19

وعليكم السلام ورحمة الله وبركاته

مرحباً اخى slamco2000
فى البداية دالة DSum فهى لعملية الجمع فقط
ولا يتم التعامل معها للطرح والضرب والقسمة

فهنا سيكون الاجابة العامة لا يمكن عمل ما تريده
ولكن فى حركة ممكن تعملها تعكس هذه النظرية ولكن ستحتاج الى تركيز منك قليلاً
لفهم ما اقصده وما هو مطلوب فعله تماماً لحل هذا الامر

الان انت لديك جدول فارغ طبقاً للبيانات التى لديك من مسميات
عند اتمام عملية الادخال لاول سطر وسيكون كمثال
1 - 100500
حيث الرقم التسلسلى 1 والقيمة 100500
فهنا سيتم اداخلها عن طريق التالى وهو التحقق اذا كان الجدول فارغاً ولا يحتوى على اى مدخلات
سيتم ادخال الـ 100500 بصورة صحيحة

طيب جيت بعد كده حبيت ادخل بيانات ليكون
2- 500 
حيث الرقم التسلسلى 2 والقيمة 500
هنا سيتم ادخالها كالتالى
فى المرة الاولى قلنا عملية التحقق اذا كان الجدول فارغ وبدون اى مدخلات يتم ادخال القيمة بصورة عامة
Else واذا كان غير ذلك وان الجدول يحتوى على سيتم ادخال القيمة على الصورة التالية
2 - (500*-1)
بحيث تكون القيمة لـ 500 بالسالب وتكون -500

طيب هنا نكون حلينا مشكلة الـ Dsum واصبح المطلوب يعمل الان
ولكن لدي مشكلة وهو عرض عمود الارقام يظهر عول قيمة برقم صحيح ولكن باقي البيانات بالسالب

الامر هنا ابسط من ما يكون
وهو عمل شرط تحقق اذا كان القيمة بالسالب تضرب القيمة فى -1
بكده سيكون الظاهر من الاستعلام ارقام صحيحة وبدون سوالب كا عرض
وفى الجدول من الداخل بطبيعة الحال بالسالب

اتمنى ان تكون الصورة والفكرة وصلت لك

اذا لم تتمكن من فعل الامر فقط ارفق ملف مصغر من المثال لديك
وساقوم بعمل ما قمت بشرحه 


تحياتى لك
وتمنياتى لك التوفيق



RE: دالة DSum والجمع بالناقص - slamco2000 - 08-07-19

أشكرك elgokr على تفاعلك والسعي لحل مشكلتي .. جزاك الله ألف خير

الاية في الحقل هو نقاص الرقم في الحقل الثاني الذي سوف يكون دائماً أكبر .. وهو حسب المسافة المقطوعة
مثلاً

لوكان الأول قطع
1  -  50
2-  80
3-  120


المفرو يكون الجدول كالآتي

50
30
40

اي حاصل
طبعاً الأول رقم وحيد .. ثم
80-50
و 120 - 80

هل ذا ممكن

لقد قمت بتير الملف قدر الإمكان وإرفاقه



الملف المرفق:

https://up.top4top.net/downloadf-12835f2id1-7z.html


RE: دالة DSum والجمع بالناقص - elgokr - 08-07-19

الشكر لله والحمد لله
والحمد لله على كل حال

بما ان عملية الطرح بيتم لما هو قبله مباشراً

فكل ما هو عليك فعل كود الاستعلام بهذا الشكل
كود :
SELECT
(VR.KM_No - iif((SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),(SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),0)) AS gETSum,
VR.KM_No,
VR.ID,
VR.NO_Shift,
VR.Date,
VR.[Vehicle Recipient],
VR.Staff_Name,
VR.Phone_Number,
VR.Vehicle_No,
VR.[Petrol Limit],
VR.[Before Petrol Refiling KM],
VR.[Petrol Refiling Amount BD],
VR.[Petrol Card Refiling Amount BD],
VR.Vehile_KM_Started,
VR.Remarks,
VR.ID2
FROM [Vehicle Recipient] AS VR;

تم استبدال سطر الخاص بـ DSum بهذا السطر
كود :
(VR.KM_No - iif((SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),(SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),0)) AS gETSum

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

والناتج النهائي لهذا الكود الخاص بالاستعلام


اتمنى ان يكون هذا ما تريده تماماً

تحياتى لك
وتمنياتى لك التوفيق



RE: دالة DSum والجمع بالناقص - slamco2000 - 08-07-19

نعم أخي elgokr
هذا ما أريد
مع اني حاولت عمل الإجراء ولم أتمكن من ذلك
فإذا ستطعت تعديل المرفق أكون ممنون إلك
مع الشكر الجزيل


RE: دالة DSum والجمع بالناقص - elgokr - 09-07-19

تعال على الـ 
كود :
Vehicle Recipient Query

وقم بعمل لها SQL View وليس Design View

ومن ثم نسخ هذا الاستعلام
كود :
SELECT
(VR.KM_No - iif((SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),(SELECT TOP 1 KM_No As KMNo FROM [Vehicle Recipient] WHERE ID2=VR.ID2-1),0)) AS gETSum,
VR.KM_No,
VR.ID,
VR.NO_Shift,
VR.Date,
VR.[Vehicle Recipient],
VR.Staff_Name,
VR.Phone_Number,
VR.Vehicle_No,
VR.[Petrol Limit],
VR.[Before Petrol Refiling KM],
VR.[Petrol Refiling Amount BD],
VR.[Petrol Card Refiling Amount BD],
VR.Vehile_KM_Started,
VR.Remarks,
VR.ID2
FROM [Vehicle Recipient] AS VR;

وعمل له استبدال بما هو لديك فى الملف كاملاً
الان يمكنك عمل عرض او تصميم ستتمكن من رؤية الامور تعمل معك جيداً

ومع ذلك يمكنك تحميل الملف من هنا
https://up.top4top.net/downloadf-1284wlpbt1-zip.html
ولكن احببت ان اشرح الطريقة حتى تستفاد من التعامل مع الامور كتابياً وليس تصميم

تحياتى لك
وتمنياتى لك التوفيق