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

كيف يمككنني أن أفرز أسماء أفراد لم يلتزموا بدفع قسط مالي طبقا للشهر الأخير ؟

مغلق
بدأه Master2004 في 7 نوفمبر 2006 · 22 رد · 2,657 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

في قاعدة البيانات المرفقة سترون أنني في صدد عمل برنامج لحصيل مبالغ مالية على دفعات شهرية " أقساط " . وتقريبا والحمد لله قدرت أن أبدأ بتصميم وإدخال بيانات العملاء وأدخلت لهم بيان دفع القسط لكل شهر يتم به تحصيل المبلغ، ولكن أحد الأصدقاء سألني كيف سأعرف من تخلف عن الدفع لمدة من الزمن أو لعدد معين من الأشهر.

سؤالي هو: بناءا على آخر شهر الذي تم تسليم القسط به والشر الحالي أو اليوم الحالي، كيف أستطيع أن أجعل البرنامج يفرز لي أسماء الأشخاص اللذين لم يلتزموا بدفع الأقساط لمدة مثلا " 3 شهور أو 6 شهور من آخر شهر تم الإلتزام بدفعه " ؟

أي أنني بذلك أود أم أعطي مهله لمن لم يستطع الدفع لعدد 3 شهور مثلا ، ولكني بالمقابل لا أريد أن أنسى حقي بالمبلغ للأبد...!

ولكم من جميعا جزيل الشكر والتقدير ....

ملاحظة : البرنامج تم تصميمة بنسخة آكسس 97

____________.rar

#2

أخي الكريم

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

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

  1. تاريخ الاستحقاق
  2. تاريخ التحصيل

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

تقبل تحياتي

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 7 نوفمبر 2006 في 23:13

#3

شكرا لتجاوبك السريع أخي العزيز / مصلح الحريصي

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

المهم بأن يستطيع البرنامج حصر العملاء اللذين تأخروا عن السداد لعدد معين من الاشهر نسبتا للشهر الحالي وأخر شهر تم سداد القسط....!

مثلا: لو تلاحظ من الجدول PayMents أن العميل رقم (1) احمد ... قد سدد أقساطه إعتبار من شهر يناير/2006 إلى شهر مايو/2006 ولم يلتزم بعد ذلك بالسداد للأشهر " يونيو+يوليو+اغسطس+سبتمبر+اكتوبر" أي انه تخلف إلى شهرنا الذي نحن به نوفبر ( 5 ) شهور فالمطلوب من البرنامج أنه إذا دخلنا بشهر ديسمبر ولم يدفع القسط أن يفرز البرنامج إسم ورقم العميل وآخر شهر سدد به القسط قبل 6 شهور... أرجو أن أكون نجحت بتوضيح طلبي بارك الله فيك...

مرة أخرى شكرا لتجاوبك اسريع أخي العزيز....

شكرا لتجاوبك السريع أخي العزيز / مصلح الحريصي

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

المهم بأن يستطيع البرنامج حصر العملاء اللذين تأخروا عن السداد لعدد معين من الاشهر نسبتا للشهر الحالي وأخر شهر تم سداد القسط....!

مثلا: لو تلاحظ من الجدول PayMents أن العميل رقم (1) احمد ... قد سدد أقساطه إعتبار من شهر يناير/2006 إلى شهر مايو/2006 ولم يلتزم بعد ذلك بالسداد للأشهر " يونيو+يوليو+اغسطس+سبتمبر+اكتوبر" أي انه تخلف إلى شهرنا الذي نحن به نوفبر ( 5 ) شهور فالمطلوب من البرنامج أنه إذا دخلنا بشهر ديسمبر ولم يدفع القسط أن يفرز البرنامج إسم ورقم العميل وآخر شهر سدد به القسط قبل 6 شهور... أرجو أن أكون نجحت بتوضيح طلبي بارك الله فيك...

مرة أخرى شكرا لتجاوبك اسريع أخي العزيز....

ملاحظة : تم إجراء بعض التعديلات بالملف المرفق

____________.rar

#4

أخى الكريم

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

#5

السلام عليكم .....

إخواني وأخواتي المدراء .... وأخوتي وأخواتي الأعضاء ....

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

شكرا للجميع...

ملاحظة: توجد نسختان من الملف الثانية هي آخر ما توصلت له. :s /b]

#6

انا عندى فكرة تانيه

ممكن تعمل جدول يحتوى على الاعمدة التاليه (رقم العميل-رقم القسط-مبلغ القسط-حق القسط-مبلغ السداد-تاريخ السداد )

على ان تراعى:

1- ان يكون رقم القسط شامل السنه والشهر اى على شاكله 200601-200602-200603-....

وعند تسجيل السداد نستدعى بيان القساط ونضع المبلغ فى خانه السداد

معن طريق استعلام بسيط يمكن استخراج كافة الاقساط المتأخرة

وهذه وجه نظر

#7

الذي أفكر فيه هو:

عمل استعلام يحتوي على : رقم العميل ــ اسم العميل ــ أخر قسط قام بتسديده ــ عدد الأقساط المتخلفه.

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

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

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 9 نوفمبر 2006 في 17:59

#8

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

 
SELECT Name.N1 AS CustomerNumber, Name.N2 AS CustomerName, Last(PayMents.P2) AS [Installment Number], Last(PayMents.P3) AS [Month], Last(PayMents.P4) AS [Year], Last(PayMents.Date1) AS [Date], Last(Date()-[Date1]) AS CountDay, ([CountDay])\30 AS CountMoth
FROM Name RIGHT JOIN PayMents ON Name.N1 = PayMents.P1
GROUP BY Name.N1, Name.N2;

وقم بحفظ الاستعلام وجرب كما يمكنك وضع شرط تحت الحقل الأخير المسمى CountMoth والشرط هو 0 <

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

جرب ودقق لأنني لم أدققه كثيراً وإذا وجدته لا يعمل كما تريد أخبرني بذلك

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

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 9 نوفمبر 2006 في 19:56

#9

مرحباً بجميع الأخوة

وأسمحوا لي بالمشاركة معكم بهذا المرفق.

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

لم اتمكن من إرفاق الملف لعدم وجود خيار إرفاق ملف ضمن المشاركة لعل في الأخوة من يساعدنا.

تحياتي للجميع.

تم تعديل هذه المشاركة بواسطة المزيني في 9 نوفمبر 2006 في 21:17

#10

أخي المزيني

أهلاً بك نتشرف بمشاركاتك معنا

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

لك تحياتي

#11

شكرا لكم إخواني : مصلح الحريصي , المزيني , Yassin123 , وجميع الإخوان والأخوات على إهتمامكم وحرصكم على المساعدة والتي من الواضح أنكم جبلتم عليها... حقا والله أنا أفتخر بكم إخواني.

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

تحياتي لكم ... وإفتخاري بمعرفتكم وبكم .... إلى اللقاء

#12

أخي الكريم : مصلح الحريصي .... الأخوة أعضاء المنتدى

تم تجربة الفكرة التي نصحتني بها ولله الحمد والمنه ... أنها أوصلتني إلى نسبة كبيرة من الحل وهي كالتالي:

بعد إستعمال SQL الذي ذكرته الآن البرنامج أصبح يفرز عدد الأشهر المستلمة أقساطها لكل فرد ويحدد آخر قسط تم الإلتزام بدفعة.. وهذا يعتبر 85% من المطلوب.

تبقى أن يفرز البرنامج الأفراد اللذين مضى على دفعهم آخر قسط 3 شهور...! أى الأفراد اللذين تخلفوا عن دفع عدد 3 أقساط نسبتا للشهر الحالي والسنة الحالية...!

بصراحة حاولت بقدر إمكانياتي المتواضعة القيام ببعض التجارب ولكن للأسف لم أنجح... والفكرة هي : أن يطرح البرنامج آخر شهر من الشهر الحالي . فإذا كان الناتج 3 أو أعلى .. يدرج البرنامج إسم العميل ... إما إن كان الناتج أقل من 3... فلا يذكر إسمة ..... " الكلام سهل بس بالتطبيق .. دخت ... :s "

على فكرة ... الفورم للإستعلام يذكر بها " الشهر - السنة " وعلى ضوءه تتم عملية الفرز ... وقد صممت هذه الفورم الآن بالرنامج ولكن لم إستطيع إرساله.. حتى ولو صورة من الفورم ..

مرة أخرى .. شكرا على تعاونكم إخواني الأفاضل

#13

أخي الكريم

طيب أعمل استعلام ثاني ولا تختار أي جدول وفي واعرض Sql ولصق التالي:

SELECT Query1.*
FROM Query1
WHERE (((Query1.CountMoth)>2));

ثم جري

#14

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

نص جملة SQL:

SELECT Name.N2, PayMents.P1, Count(PayMents.P2) AS مسدد, [الحالي]-[مسدد] AS متخلف, Month(Now()) AS الحالي, Last(PayMents.P3) AS [أخر شهر تم سداده]
FROM Name INNER JOIN PayMents ON Name.N1 = PayMents.P1
GROUP BY Name.N2, PayMents.P1;

أرجو إفادتي عن النتيجة

مع التحية للجميع

#15

الله يحفظك أخي المزيني دائماً تتحفنا بروائعك بارك الله فيك

ليدي استفسار لو سمحت لي عدل تاريخ الجهاز مثلاً إلى عام 2008 ثم أعرض الاستعلام ستجد بأن العميل أحمد متخلف عليه 5 أقساط بينما يظهر لدي في الاستعلام الذي قمت بعمله 26 شهر اليس ذلك صحيحاً .

تقبل تحياتي

#16

هذا من ذوقك أخي أبوسارة وإلا فالمثال متواضع.

كلامك صحيح فالمثال الذي وضعته يعتبر أن عدد الأقساط 12 قسط، وهذا غير صحيح غير أنني عملت وفق الحقول المتوفرة وكما قلت سابقاً العمل يعتمد على تصور من صمم قاعدة البيانات.

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

#17

أخي المزيني.

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

هذا ندعها لأخينا السائل.وأن أحتاج المساعدة فالجميع هنا سيجيبون على أسئلته.

لك كل شكري وتقديري وسررت فعلاً بمداخلاتك المفيدة.

#18

إخواني الأفاضل : مصلح الحريصي ، المزيني

جزاكم الله عنا ألف خير وبارك الله فيكم .. وبجميع الاخوة الأعضاء ...

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

إخواني الأعزاء ... بعد تطبيق إقتراح الأخ/ المزيني ... البرنامج تقريبا أدى المطلوب منه ولكن ليس بالدقة المطلوبة ... فإن عامل السنة لم يأخذ بالحسبان ..! فبالمثال المرفق نجد أن العميل/خالد "رقم 2 " ... سدد آخر قسط بشهر يوليو 2005 " وعليه يعتبر متأخرا 16شهرا , وليس 4 كما يبين الفرز " ونفس الشئ للعميل "باسل" ... أي أنه يجب وضع السنة التي تم دفع آخر قسط بها بالحسبان .

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

وهي : رقم العميل -إسم العميل - رقم القسط - الشهر - السنة ...

ملاحظة : لدي E-Mail : alradel@hotmail.com وإذا لم يكن هناك مانع يمكن إستخدامة لتبادل المرفقات " الملف " إلى أن تتم إعادة عملية المرفقات بالمنتدى ...

#19

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

بمشيئة الله تعالى سيكون في الجملة التالية حل نهائي للمشكلة.

SELECT Name.N2, PayMents.P1, Count(PayMents.P2) AS مسدد, 1 AS First_d, First(PayMents.P3) AS First_m, First(PayMents.P4) AS First_y, 30 AS Last_d, Last(PayMents.P3) AS Last_m, Last(PayMents.P4) AS Last_y, [First_d] & "/" & [First_m] & "/" & [First_y] AS FirstDate, [Last_d] & "/" & [Last_m] & "/" & [Last_y] AS LastDate, DateDiff("m",[FirstDate],Date()) AS الحالي, [الحالي]-[مسدد] AS متخلف
FROM Name INNER JOIN PayMents ON Name.N1 = PayMents.P1
GROUP BY Name.N2, PayMents.P1;

وللجميع أجمل تحياتي

#20

مساكم الله بالخير ... أخواني أعضاء المنتدى ....

والله يبيض وجهك دنيا وآخرة إن شاء الله .. أخوى " المزيني " .... وجزاك الله عني ألف .. بل مليون خير وهذا شوية عليك ...

بصراحة وبحمد من الله تم تطبيق الحل الذي إقترحته وأصبت الهدف بدرجة إمتياز ....

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

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

مرة أخرى شكرا لكل من ساعد وساهم وشارك بإبداء الملاحظات وإدراج الحلول المقترحة لحل هذه المشكلة ... وخاصة الإخوان " المزيني ، مصلح الحريصي ".....

جزاكم الله خير .. :D ..... :lol: ..... B)

#21

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

أخي الفاضل / " المزيني " ... يحفظك الله ..

يمكن أني طماع .... بس أكيد أنت كريم ....

عزيزي ، بعد ظهور النتيجة الممتازة وهي حصر عدد الأشهر المتخلفة عن دفع أقساطها لكل عميل .... طمعت بأن أجعل البرنامج وبلمسة زر واحدة يزودني بأسماء العملاء المتخلفين عن الدفع " لأكثر من 3 شهور".... وعليه ... في نموذج الإستعلام .... وفي العمود الذي به ناتج مجموع الأشهر المتخلفة .... أدخلت في خانة معايير " Criteria " .. المعيار " 3< " لحصر الأفراد ... ولكني فوجئت بظهور شاشة رسالة بعنوان " إدخال قيمة معلمة " وفي الخانة البيضاء يجب أن أدخل قيمة " الحالي" .. وعند إدخال أي رقم يقصد ه الشهر الحالي ... تظهر رسالة أخر " مسدد " ..... إلى آخره

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

مرة أخرى تقبل تحياتي وشكري لك ولجميع الأخوة الأعضاء المشاركين ...

#22

تستأهل كل خير أنت وجميع الأخوة

قم بإنشاء إستعلام مبني على الإستعلام السابق وضع ماشئت من الشروط.

تحياتي.

#23

السلام عليكم ....

شكرا لك أخي الفاضل " المزيني " .....

بعد عمل إستعلام لاستخراج وفرز الأسماء من الإستعلام السابق من خانة " متخلف " والتي تحوي إجمالي عدد الأشهر المتخلفة .... وذلك بوضع " >6 " ... تظهر رسالة أن هناك خطأ ....

مرة أخرى شكرا جزيلا لك أخي الفاضل ...

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

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

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

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

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

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

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