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

طلب مساعدة في تعديل قاعدة بيانات مقاولي الباطن

مغلقمُجاب
بدأه المالكي في 25 مارس 2013 · 14 رد · 2,194 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اقوم بعمل قاعدة بيانات لمقاولي الباطن ،

وتتكون من :

1- جدول مقاولي الباطن

2- جدول المشاريع

3- جدول المقاولة الفرعية ( كهرباء ، تكييف ، صحي ، ،،،،،،

4- جدول حساب الدفعات للمقاول

في بعض الاحيان يكون للمقاول اكثر من عقد فرعي في نفس المشروع مثلا له عقد تكييف ، وايضا عقد للاعمال الصحية  في المشروع الواحد

وكلا العقدين بشروط مختلفة فقد يكون للعقد الاول محجوز ضمان او خصم نسبة تامين ، والاخر يكون بدول اي حجوزات

كما في الصورة  1 و 2

post-8809-0-76708400-1364223393_thumb.pn

post-8809-0-25951800-1364223577_thumb.pn

عند فتج النموذج paymentData Form  كما يظهر في النموذج

post-8809-0-99511500-1364228885_thumb.pn

 

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

الا انه لا يقوم باحتساب النسب المطلوب خصمها الا للمقاولة المسجلة اولا للمقاول

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

مقاولي الباطن 2.rar

#2

أخي المالكي

 

إن كان قصدك الخانات في اسفل النموذج ، والتي تجمع وكذا ....

فالرجاء مطالعة هذا الرابط الخارجي ، والذي ناقشت فيه هذه النقطة وطريقة حلها بإرفاق قاعدة بيانات :)

http://www.utteraccess.com/forum/Sum-Unbound-Textbox-For-t2001045.html

 

وإذا لم تكن تقصد هذا ، فالرجاء توضيح اسم الحقول التي تريدنا النظر فيها.

 

شكرا

 

جعفر

#3

اخي جعفر

اشكرك لتواصلك واهتمامك

وسوف الخص لك المشكلة فيما يلي

عندي  3 مشروعات وفي بعض الاحيان فان مقاول الباطن يعمل في مشروع واحد او  مشروعين واحيانا يعمل في  الثلاثة مشاريع

وفي بعض الاحيان فان مقاول الباطن يأخذ مقاولتين في المشروع الواحد مثلا :

1- عقد باعمال التكييف بمبلغ 100000 ويحجز منه  في كل مستخلص اعمال محجوز ضمان الاعمال 10 % او خصومات اخري

2- عقد باعمال الصحي بمبلغ 50000  ولا يوجد به اي حجوزات في المستخلصات

اذا كان المقاول يعمل في عقد واحد او اثنين لكن في مشروعات مختلفة

فقمت بعمل جدول اقوم بادخال بيانات المقاولات الفرعية SubCon_JobData FORM

1- مقاول الباطن - العقد الرئيسي - المقاولة المسندة اليه - وشروط الحجوزات في هذه المقاولة  مثلا

المقاول (001) : شركة الشبكات

العقد الرئيسي (03) : مشروع الجامعة

المقاولة الفرعية (04) : اعمال الشبكات

قيمة المقاولة : 79974

نسبة الدفعة المقدمة ( الواجب خصمها ) = 0%

نسبة محجوز الضمان (الواجب خصمه من الدفعة ) = 0%

وهكذا

ثم تم اسناد مقاولة اخري للمقاول كالتالي

المقاول (001 ) : شركة الشبكات

العقد الرئيسي (05) : ميديا سنتر

المقاولة الفرعية (03)  : اعمال الشبكات

قيمة المقاولة : 1000000

نسبة الدفعة المقدمة ( الواجب خصمها ) = 5%

نسبة محجوز الضمان (الواجب خصمه من الدفعة ) = 5%

 

والان عند تسجيل الدفعات ( المستخلصات للمقاول ) في نموذج paymentData Form

يطلب ادخال كود المقاول ، ثم كود العقد الرئيسي ، ثم كود المقاولة الفرعية ( حتي يظهر بيانات هذه المقاولة فقط )

فاقوم بادخال المستخلصات ، او اضافة المستخلصات الجديدة

المشكلة هي اذا قمت بادخال  المقاول (001) ، العقد (03) و المقاولة (04) فانه يتم اجراء الحسابات والمعادلات بصورة جيدة

( لايوجد عليه اي خصومات ) وتظهر قيمة الخصومات صفر

فاذا غيرت النسب واضفت ارقام اخري فانها تعمل بصورة جيدة

ولكن اذا قمت بادخال نفس المقاول للعقد الثاني ( 05) ومقاولة (04)

فانه يقوم باحتساب نسب الخصم علي اساس انها ( صفر ) مثل المقاولة الاولي وليس طبقا للبيانات الخاصة بالمقاولة

 

ما اريده هو عندما اقوم بفتح نموزج paymentData Form يقوم باحتساب النسب التي تم ادخالها لهذه المقاولة

#4

عفوا اخي لم اجد اي معادلة في النموذج paymentData Form ولا في الاستعلام paymentData Query ، ولا حتى Calculated field  في الجدول paymentData !!

بينما جميع معلومات المقاول الباطن موجودة في جدول SubCon_JobData ، فكيف يمكن للبرنامج ان يقوم بحجز الخصومات؟

 

في اعتقادي (وبسبب اني مهندس مدني) ان Retention_Value مفروض تكون من عملية ضرب

Retention_Value=Payment_Value*Retention%

ولكن لأن Retention% موجودة في الجدول SubCon_JobData ، فيجب عليك إما:

ربط جدول paymentData بالجدول SubCon_JobData عن طريق الاستعلام وتوفير Retention% للمعادلة ،

او جلب قيمة Retention% عن طريق DLookup.

 

رجاء إفادتي اذا فاتني شي لم ألاحظه :(

 

جعفر

#5

اخي جعفر
عند فتح نموذج paymentData FormpaymentData Form  في وضع التصميم
واختيار خصائص الخانة Total_PrevPayment_Value في الحدث (event) عند الخروج
ستجد المعادلات في هذا المديول
قمت بتعديل تصميم النموذج بوضع ال combo الخاصة بنسبة الدفعة المقدمة ونسب محجوز الضمان في وضع visable لتظهر عند فتح النموذج
وقمت بتعديل قيم النسب لتكون 10% بدلا من صفر ، فتظهر النتائج في نموذج   paymentData FormpaymentData Form
 

مرفق قاعدة البيانات بعد التعديل

 

المعادلات والحساب يعمل بطريقة صحيحة ولكن مشكلتي :

المقاول رقم : 001  ( شركة الشبكات ) اسند اليها مقاولتين للقيام باعمال المقاولة رقم  (04 )  networks 

الاولي في العقد الرئيسي رقم (03 ) kuwait univeristy  وشروط العقد مثلا خصم محجوز ضمان 10% وخصم دفعة مقدمة 10%

واثنانية في العقد الرئيسي رقم ( 05)  media center      وشروط العقد مثلا خصم محجوز ضمان 5% وخصم دفعة مقدمة 5 %

ومن المفترض عندما اقوم بفتح النموذج paymentData FormpaymentData Form يطلب ادخال رقم المقاول فاقوم بادخال مثلا المقاول رقم 001

ثم يطلب رقم العقد الرئيسي فادخل رقم العقد مثلا 03  ، ثم ادخال رقم المقاولة الفرعية فاقوم بادخال الرقم 04 فعندما يفتح النموذج يظهر جميع الدفعات الخاصة بهذه المقاولة الفرعية

ويقوم باحتساب الخصومات طبقا للنسب المدرجة في بيانات المقاولة الفرعية والمفترضة في المثال مثلا 10%

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

لانني اذا ادخلت بيانات المقاولة الثانية مثلا للعقد الرئيسي (05) والمقاولة الفرعية (04) والمفروض ان نسبة الخصم 5% فان الحسابات تتم علي اساس اول بيانات تم ادخالها للمقاول وهي 10% ، وهكذا تذت قمت بادخال 10 مقاولات لهذا المقاول بنسب مختلفة ، قان النتائج  لا تتم الا علي النسبة التي تم ادخالها في اول مقاولة

وهذه هي المشكلة

اريد عندما اقوم بادخال رقم المقاول  ثم رقم العقد ثم المقاولة الفرعية لا يقوم الا باحتساب النسب الواردة في المقاولة المذكورة

مرفق قاعدة البيانات بعد التعديل

مقاولي الباطن 2.rar

#6

ما شاء الله 151 مشاهدة ، وما فيش حد من الاخوة يفكر لنا بطريقة او يرشدنا لمثال مشابهه  نقدر نتوصل عن طريقه لحل

مش لازم تعديل علي القاعدة ، فقط احد من الاخوة يوضح لنا الفكرة 

#7

سلامي اخي

 

انا مسافر ، لكن الليلة إن شاء الله بشوف موضوعك :)

 

جعفر

#8

اخي جعفر

ترجع بالسلامة ان شاء الله

يبدو وان طريقة عرض المشكلة كانت السبب ربما لانني لم استطيع ايصالها للاخوة وهذا سبب ان المشاهدات تجاوزت ال 150 مشادة وبدون الوصول للحل

 لذلك قمت بالتعديل علي القاعدة لتبسيطها

وشرح المشكلة بطريقة مبسطة لعل وعسي

 

 

اقوم بعمل قاعدة بيانات لمقاولي الباطن والدفعات المنصرفة لهم وتتكون من :

1- جدول المشاريع الرئيسية jobs ويتم ادخال بيانات المشاريع

2- جدول بيانات الاعمال الفرعية بالمشاريع ( المقاولة من الباطن ) SubJobs

3- جدول مقاولي الباطن Subcontractors ويتم فيه تسجيل اسماء مقاولي الباطن اللذين يعملون بالمشاريع ( بدون تكرار للمقاول )

4- جدول الاعمال والمشاريع المسندة لمقاول الباطن SubCon_JobData ويتم تسجيل المقاول والمشروع الرئيسي الذي يعمل به ، والاعمال المسندة اليه بالمشروع

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

في هذا المثال :

المقاول رقم 001 يعمل بمشروع 01 ( univeristy ) وله عقد مقاولة باطن لاعمال 04 ( networks ) وشروط عقد المقاولة ان يخصم منه:

5% دفعة مقدمة من كل دفعة (Advance)% ،

5% محجوز ضمان من كل دفعة ( Retention% )

 

نفس المقاول 001 يعمل بالمشروع 02 ( media center ) وله عقد مقاولة باطن لاعمال 04 ( networks ) وشروط عقد المقاولة ان يخصم منه:

10% دفعة مقدمة من كل دفعة (Advance)% ،

10% محجوز ضمان من كل دفعة ( Retention% )

وهكذا ،،،

وقمت بعمل المعادلات وتعمل بصورة ممتازة ، ولكن المشكلة هي :

عندما قمت بعمل combo box لنسب الدفعة المقدمة ، ومحجوز الضمان وخلافه ، تم تخزين القيمة في رقم المقاول وهنا ظهرت المشكلة بالرغم من انه عند فيتح النموذج paymentData Form يسأل عن رقم المقاول ثم عن رقم العقد الرئيسي ثم عن رقم المقاولة الفرعية فيقوم باظهار بيانات الدفعات لهذه المقاولة فقط

ولكن المشكلة هي اذا قمت بادخال رقم المقاول 001 ، للعقد 01 ، للمقاولة الفرعية 04 ( اذا كانت هذه اول مقاولة تم ادخالها له ) تظهر النسب المدرجة لهذه المقاولة وهي 5% ويتم الحساب بصورة صحيحة ، ولكــــــن اذا قمت بادخال رقم المقاول 001 ، للعقد 02 ، للمقاولة الفرعية 04 وهي السجل رقم 2 لهذا المقاول فانه يقوم باظهار البيانات الخاصة بهذه المقاولة فقط ولكن نسب الخصم تظهر نفس نسب السجل رقم 1 فبدلا من ان تظهر نسبة الخصم لهذه المقاولة 10% تظهر 5% ويتم الحساب علي اساس 5%

يبدو وان الخطا بسبب انني عندما قمت بانشاء combo box اخترت حفظ القيم في رقم المقاول

ما هي الطريقة الصحيحة بحيث يظهر قيم الخصم للمقاولة علي اساس النسب المدرجة لبيانات المقاولة التي يعمل بها المقاول

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

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

مقاولي الباطن 4.rar

#9
 

أخي المالكي اعتذر عن التأخير في الرد ، لأني لازلت على سفر :)

1.

ComboBox 45

واخواتها ، مثل ما تفضلت انت وقلت ، انها مربوطة بالمقاول فقط ، دون ربطها مع

SubJobNo و  JobNo

لهذا ، مع ان جميع قيم الحجوزات تظهر في القائمة ، إلا ان الخانة الاولى هي التي يستعملها النموذج ، وهذه الخانة عبارة عن معلومات اول مشروع تم إدخاله في الجدول.

لذا وجب ربط

ComboBox 45

واخواتها بالحقول الثلاث والتي هي موجودة بالنموذج وهي:

SubCon_No و SubJobNo و  JobNo

post-273849-0-70201300-1365514010_thumb.

 

2.

بما اننا لا نريد قراءة وتخزين قيم

ComboBox 45

واخواتها ، لذا يجب عدم ادخال اي اسم في الخانه

Control Source

 

3.

في الحدث بعد فتح النموذج ، يجب إعادة الطلب من

ComboBox 45

واخواتها لتوفير البيانات حسب المعلومات الموجودة في النموذج للخانات

SubCon_No و SubJobNo و  JobNo

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

post-273849-0-92629200-1365514013_thumb.

 

4.

بعض خانات

ComboBox 45

واخواتها لا تحمل قيمة ، لذا ولعدم حصول مشكلة في عملية الضرب ، استخدمت

Nz

وهي لتغيير القيمة

Null

الى اي قيمة أخرى ، وهنا استعنت بتغيير قيمتها الى صفر.

post-273849-0-38142800-1365514017_thumb.

 

ولم انظر في اي شئ آخر في النموذج او الكود ، لذا ، ارجو ان تكون هذه التغييرات تحل مشكلتك ، وإن شاء الله استطيع ان ارد على اي استفسارات اخرى لديك :)

 

جعفر

17.مقاولي الباطن 4.zip

#10

اخي جعفر

اشكرك جزيل الشكر ، جعله الله في ميزان حسناتك

وترجع بالسلامة ان شاء الله

#11

إن شاء الله التعديل كما أردت :)

جعفر

#12

اخي جعفر

عندما فتحت النموذج paymentData Form  ظهرت النسب بالنموذج ( هناك نسبة لم تظهر رغم انها موجودة RETENTION % ) ظهرت النسب وتم الاحتساب كما اريد لكن للدفعات السابق ادخالها  وهي بالفعل كما كنت اريد ،

ولكن عندما قمت باضافة دفعة لنفس المقاول لم تظهر النسب  ، فقمت بمسح سجلات الدفعات لاقوم بادخال الدفعات الفعلية لكن لم تظهر النسب داخل COMBO BOX ولم يتم الحساب

علي الرغم من ان النسب موجودة بجدول  SubCon_JobData 

وكذلك عند ادخال اي بيانات مقاولة جديدة لاتظهر النسب او الحسابات للنسب

#13 أفضل إجابة

جرب هذا الملف :)

 

وانظر للكود ، فقد تستفيد منه لخانات اخرى :)

 

جعفر

17.مقاولي الباطن-41.zip

#14

ايه الحلاوة دي ، الله ينور عليك

هو ده المطلوب يااستاذنا بارك الله فيك

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

لان المشاهدات وصلت الي 300 مشاهدة  وما فيش حد وصل للطريقة

تم تعديل هذه المشاركة بواسطة المالكي في 12 أبريل 2013 في 03:19

#15

الله يسلمك يا ريس :)

اكتب استفساراتك ، وانا ارد عليك بالتفصيل إن شاء الله :)

جعفر

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

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

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

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

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

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