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

سؤال عن عملية حسابية

مغلق
بدأه الفني2 في 24 يوليو 2005 · 5 رد · 914 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

وهو عبارة عن : تاريخ العملية ، المبلغ ، نوع العملية ، الوصف

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

مثال : عندي في الخزنة 1000

بعد العملية الأولى وهي إيداع 20 يصبح عندي في مربع نص منفرد 1020

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

أرجو أن أكون وفقت في توضيح سؤالي وشكرا ومرفق جدولين وتقرير والمطلوب في التقرير

new.rar

#2

تفضل اخي .

و عندي ملاحظةعبارة عن سؤال و هي ماذا لو كان عندك اكثر من حساب . المثال الذي طرقته فقط يشمل حساب الصندوق او البنك , و لكن النظام المحاسبي يشمل عدة حسابات مثل الموجودات الثابته بانواعها و المصاريف بانواعها و الايرادات بانواعها و المخزون . اتوقع انه يجب تعديل الجداول للتلا ئم مع جميع هذه المتطلبات .

مع التقدير .

new.rar

العراق - البصرة

#3

شكرا اخي على المثال الرائع أولا وياريت تشرح لي ما فعته في الإستعلام أو بالأحرى الدالة التي عملتها

ثانيا : نعم مثل ما تفضلت يجب تعديل الجداول للتلائم مع جميع المتطلبات التي ذكرتها لتطوير البرنامج .

#4

العفو اخي , اما بالنسبة للتعديل في الاستعلام فقد شمل التالي :

1- تم اضافة كلا الجدولينtable1 and table2 في الاستعلام لكي تكون جميع البيانات المطلوبة في التقرير و المستند على الاستعلام متوفرة .

table2: كما تعلم هو جدول يحتوي على حركة الحساب من ايداع و سحب اضافة الى رقم الحركة و تاريخها .

table1 : و يحتوي هذا الجدول على الرصيد الافتتاحي لهذا الحساب ( اقصد حساب البنك او الصندوق)

فعند دمج الجدولين في الاستعلام و اخذ جميع حقول الجدول الثاني و الحقل الوحيد في الجدول الاول و الذي يمثل الرصيد الافتتاحي . بدون اي شروط ظهرت عملية تكرار لمبلغ الرصيد الافتتاحي في الاشتعلام لكل حركة ايداع و سحب موجودة في الجدول الثاني( table2) . مع العلم ان نتيجة الاستعلام من المفترض ان تنتج عدة حركات و رصيد واحد فقط ولهذا الغرض تم اضافة شرط للرصيد الافتتاحي يتمثل بـ:( اذا كان رقم الحركة يساوي 1 فأن الرصيد الافتتاحي يساوي مبلغ الرصيد الافتتاحي و الا فمبلغ الرصيد الافتتاحي يساوي صفر)

Expr1: IIf(table2!F1_Namber=1;Table1!curun;0)

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

2 - في التقرير و في حقل الحساب بعد العملية و الذي افضل ان ادعوه بأسم ( الرصيد ) تم اضافة شرط لحساب هذا الرصيد : ( فاذا كانت العملية ايداع فان الرصيد يساوي الرصيد الافتتاحي + مبلغ الايداع و الا فان الرصيد يساوي الرصيد الافتتاحي - السحب )

3 - الملاحظة المهمة هي تعديل خصائص حقل الحساب بعد العملية ( الرصيد ) ليصبح تراكمي .كما موضح في الصورة ادناه :

مع اني افضل ان يكون الرصيد الافتتاحي و الحركة كلاهما في جدول واحد و ذلك باضافة نوع جديد لتصبح انواع العمليات ثلاثة و ليس اثنين و هي في الحقيقة ثلاثة : ( رصيد افتتاحي , ايداع , سحب)

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

post-23028-1122360233_thumb.jpg

العراق - البصرة

#5

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

الرصيد الإفتتاحي هو 200

السحب هو 50 والإيداع هو 20 فيكون الناتج في نهاية التقرير هو 170

المطلوب حفظ الناتج ( 170 ) في جدول مثلا لأنه سيكون رصيد إفتتاحي بالنسبة إلى فترة أخرى إذ أن السنة تتكون من عدة فترات ، يجب رفع تقرير السحب والإيداع فيها. وشكرا أخي وأرجو أن يكون هناك حل لهذه العملية .

#6

السلام عليكم

اخي العزيز:

1 - تم تعديل جدول table2 و كما اخبرتك بأضافة نوع جديد هو الرصيد الافتتاحي كما تم تعديل الحقول فقد تم فتح حقل خاص بالسحب و حقل للايداع لتسهيل عملية الحساب . زقد ملأت الجدول بتواريخ افتراضية لعمليات السحب و الايداع حيث يبدأ الرصيد الافتتاحي بتاريخ 1/1/2005 و تستمر العمليات الى تاريخ 19/1/2005 .

2- تم اضافة جدول date لادخال الفترة المطلوبة لطباعة العمليات الحسابية . يتم ادخال القيم الى هذا الجدول بواسطة الاستعلام ( استعلام تحديث ) اسمه ins_date يتم تشغيل هذا الاستعلام عند فتح التقرير . بواسطة الكود التالي:

Docmd.openquery("ins_date")

3- تم اضافة استعلام query2 و وظيفته هو حساب عملية الرصيد حسب الفترة الزمنية المدخله في بداية فتح التقرير.

4- تم اجراء تعديل بسيط في التقرير و استعلام query1

new.rar

العراق - البصرة

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

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