الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في أمر التجميع SUM مع التخزين في الجدول

مغلق
بدأه مستركفي في 29 أغسطس 2004 · 17 رد · 1,111 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخواني السلام عليكم ورحمة الله ..

أواجه مشكلة مع عمليات الجمع SUM في الكود .. سأختصرها كالتالي :

يوجد ملف مرفق يوضح العمل المطلوب والذي لا ينفذه الكود وهو :

أنني في مربع ( إجمالي مساهمة الشخص ) وضعت مصدر البيانات اسم الحقل SUMSAHM في الجدول TAB1

ووضعت كود في بعد التحديث في كل من : مربع (مبلغ السهم ) و (عدد الأسهم ) وهو :

SUMSAHM = SAHAM COUNT * SAHAMCOST

وهذا الكود شغال 100% ويؤدي المطلوب منه حيث يحسب قيمة ( إجمالي مساهمة الشخص ) وبما أن مصدر البيانات لهذا الحقل هو SUMSAHM في الجدول TAB1 فإن القيمة ستضاف مباشرة في الجدول ..

المشكلة أنني أريد أضع كود يحسب مجموع ( إجمالي مساهمة الشخص ) في مربع (مجموع مبالغ المساهمات ) مع الحفاظ على مصدر البيانات له وهو TOTELMOSAHAMAH في الجدول TAB1

والكود هو بعد التحديث في ( إجمالي مساهمة الشخص ) :

TOTELMOSAHAMAH = SUM ([SUMSAHM])

والعجيب أن مدقق الأكواد يعطي خطأ في صياغة الكود حيث يقوم بتظليل SUM

لا أعرف يبدو أنني لم أعرف كتابة الكود جيدا .. الرجاء المساعدة في هذا البرنامج .. وعذرا على الإطالة ..

db4.rar

#2

استخدم هذا الكود

TOTELMOSAHAMAH = DSum("SUMSAHM", "TAB1", "[NO KEY]='" & [NO KEY] & "'")

بدلاً من هذا

TOTELMOSAHAMAH = SUM ([SUMSAHM])

تحياتي ..

#3

شكرا لك أستاذي فهد الدوسري على مرورك ..

لكن وضعت الكود الذي كتبته في بعد التحديث عند (إجمالي مساهمة الشخص )

ولكن لايقوم البرنامج بالجمع حيث تستمر خانة المجموع عبارة عن أصفار ..

#4

السلام عليكم

للاسف انا لااعرف مغزى الحقل هذا ولكن هل هذا يفى بالغرض

db4.rar

مر الكلام زى الحسام يقطع ما كان ما يمر، أما المديح سهل ومريح يخدع لكين بيضر، والكلمة دين من غير إيدين بس الوفا ع الحر

#5

أخي .. بارك الله لك في علمك وعملك .. وجمعك مع من تسميت باسمه في جنات النعيم ..

الكود الذي كتبته

Me.TOTELMOSAHAMAH = SUMSAHM

كأنه إعادة لحقل واحد مرتين .. في النموذج ..

والمطلوب أن يكون TOTELMOSAHAMAH هو مجموع حقل SUMSAHM

بمعنى أوضح أريد إضافة sum قبل SUMSAHM ولكن يعطيني خطأ ولا أعرف لماذا ؟

فهل كتابة الكود بهذا الشكل التالي صحيحه .. مع العلم أنها توضع في عند فقد التركيز في مربع ( عدد الأسهم )

Me.TOTELMOSAHAMAH =sum([ SUMSAHM])

وشكرا ..

#6

هل يكرر اسم الشخص أكثر من مرة في نفس الجدول أم لا ؟

إذا كان الجواب ( نعم ) فبناء الجدول بهذه الطريقة غير صحيح .

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

فاستخدم هذا الكود ..أنا لم أجربه بعد

TOTELMOSAHAMAH = DSum("SUMSAHM", "TAB1")

جرب وأخبرني

تم تعديل هذه المشاركة بواسطة فهد الدوسري في 29 أغسطس 2004 في 22:32

#7

أهلا بك أستاذي فهد الدوسري ..

بالنسبة للسؤال

اقتباس
هل يكرر اسم الشخص أكثر من مرة في نفس الجدول أم لا ؟

فالإجابة لا طبعا .. كل شخص له حسابه الخاص ..

والمطلوب من المجموع أن يقوم بجمع (( جميع إجمالي مساهمات الأشخاص ))

وأما بالنسبة للكود الذي أدرجته في ردك السابق .. فلم ينجح

ولا أدري ما السبب مع العلم أنني حاولت وضعه في كذا مكان ..يعني (( بعد التحديث - عند فقد التركيز -...))

#8

الاخ الفاضل

السلام عليكم

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

مر الكلام زى الحسام يقطع ما كان ما يمر، أما المديح سهل ومريح يخدع لكين بيضر، والكلمة دين من غير إيدين بس الوفا ع الحر

#9

شكرا لك أخي ..khatab

على مرورك .. وأعتذر لكم إخواني على إزعاجكم ..

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

حيث يكون الجمع متأخر بمجموع سجل كامل لأن البرنامج يحتاج لإتمام عملية الجمع إكمال دورة في السجل الواحد ..

عموما إخواني يبدو أنني سأعيد بناء الجداول بطريقة اخرى تكون بعيدة عن هذه المشاكل ..

لكن صدقوني كم أنا سعيد بمشاركتكم معي .. في هذه المشكلة ..

وأخص بالشكر أخي وأستاذي :

فهد الدوسري

وأخي khatab

فلكم مني جميعا جزيل الشكر ..

#10

أجعل مجموع مساهمات الأشخاص تخرج في مربع نص غير منظم مستخدماً الكود الأخير الذي وضعته أنا .

جربت الطريقة وخرج معي المجموع .

تحياتي ..

#11

لا تيأس أبداً .. فالعلم يريد الإصرار

#12

أستاذي فهد الدوسري ..

(عذبناكم معنا )

بدأ يساورني شك أن الخلل من الجهاز عندي ..

فأتمنى أن ترفق البرنامج مع التعديل الذي قمت به ..

لأن كل الطرق التي قلتها أنت وأخي khatab .. أنفذها على الجهاز وتعطيني أخطاء ..

وعذرا على التكليف .. لكن طيب أخلاقكم .. طمعّنا فيكم ..

وجزاكم الله كل خير ..

#13

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

تصحيحا للكود الذي تطلبه سوف يكون هكذا :

SUMSAHM = SAHAMCOUNT * SAHAMCOST
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
TOTELMOSAHAMAH = DSum("[sumsahm]", "tab1", "[no key]=n")
PRSAHAM = ([SUMSAHM] / [TOTELMOSAHAMAH])

على أن يتم إستبدال إسم الحقل ( [no key] ) إلى ( n ) للإشارة إليه في الكود .

ولكن أعتقد أن طريقتك في بناء البرنامج خاطئة .

مرفق المثال بعد التعديل حسب طلبك

تحياتي : أبو عقيل

db4.rar

تم تعديل هذه المشاركة بواسطة muslim-es في 31 أغسطس 2004 في 15:30

المسلم من سلم الناس من لسانه ويده

#14

أخي الكريم ،،،

إقتباس

اقتباس
والمطلوب من المجموع أن يقوم بجمع (( جميع إجمالي مساهمات الأشخاص )
)

في هذا الحالة سوف يتغير الكود إلى :

SUMSAHM = SAHAMCOUNT * SAHAMCOST
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
TOTELMOSAHAMAH = DSum("[sumsahm]", "tab1")
PRSAHAM = ([SUMSAHM] / [TOTELMOSAHAMAH])

سوف يكون كود الجمع بدون شرط بالرقم ( [no key] ) .

مرفق المثال

تحياتي

db41.rar

المسلم من سلم الناس من لسانه ويده

#15

أخي أبو عقيل .. شكر الله لك حرصك .. على إفادة إخوانك في هذا المنتدى الرائع ..

بالنسبة للمثال ..

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

حيث كانت أول مساهمة باسم أحمد صالح عبارة عن عدد (5) أسهم ومجموع مساهمته (5000) وكانت نسبته ( حوالي 37% ) وقمت بإضافة سجل رابع باسم صالح حيث كانت مساهمته مساوية لمساهمة أحمد صالح ولكن خرجت نسبته مختلفة عن أحمد مما يعطي دليلا قاطعا على خلل في علية القسمة ..

ولاحظت أمرا آخر .. أن مجموع المساهمات في الأرض في الجدول كان في جميع الخانات يساوي (13000)

لما أضفت المساهم الرابع .. أصبح أمامه في الجدول (18000) وبقيت البيانات السابقة لم تتغير .. فلماذا تغيرت معي المجاميع .. وكانت معك أخي أبو عقيل ثابته ومتساوية ..

هل لنسخة الأوفيس تأثير (( للعلم أطبقها على إكس بي و 2003 ))

وشكراً ..

#16

أخي الكريم ،،، كما أسلفت لك طريقتك هذه لإستخراج نسبة المساهم غير صحيحة

ولكي يكون برنامجك منطقياً ،،، لابد أن يحتوي على الأقل على جدولين :

1 - جدول لأنواع العقارات وهذا الجدول يحتوي على الحقول التالية :

رقم العقار

نوع العقار

قيمة العقار

2 - جدول المساهمين ويحتوي على الحقول التالية :

رقم العقار

اسم المساهم

مبلغ السهم ،،،، وأرى أن يكون هذا الحقل في الجدول الأول

عدد الاسهم

إجمالي قيمة الاسهم التي دفعها المساهم

نسبة الشخص من المساهمة

مرفق لك المثال بعد التعديل

تحياتي : أبو عقيل

db41.rar

المسلم من سلم الناس من لسانه ويده

#17

سلمك الله أخي أبو عقيل ..

الصراحه لا تعلم كم غمرتني الفرحه .. عندما شاهدت برنامجك وكيفية تخطيطه .. فلقد عملت برنامج قريب منه في التخطيط ..

فلقد علمت الآن أن التفكير يرقى إلى مستواكم ..

فجزاك الله كل خير ..

#18

حياك الله أخي الكريم ،،،، وبالتوفيق إن شاء الله

تحياتي : أبو عقيل

المسلم من سلم الناس من لسانه ويده

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…