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

كيوري لعمل جدول للأقساط ms access query

مغلقمُجاب
بدأه hamada33n@yahoo.com في 21 يناير 2014 · 5 رد · 2,076 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

 

لدي الجدول التالي:

 

contract_ID >>>>> رقم معرف لعقود التقسيط

 Contract_start_date>>>>>> تاريخ بداية العقد

Contract_Duration>>>>>>مدة العقد بالسنوات

Contract_amount>>>>>> إجمالي قيمة العقد

Fixed_premium>>>>>> قيمة القسط الثابت

Pay_every_month>>>>> يتم تحصيل القسط كل .... شهر

 

المطلوب عمل كويري يعرض كل الاقساط الشهرية و تواريخ استحقاقها:

 

مثال:

 

بيانات العقد:

رقم العقد: 5

تاريخ بداية العقد 01 / 01 / 2014

مدة العقد بالسنوات: 3 سنوات

إجمالي قيمة العقد:9000 جنية

قيمة القسط الثابت: 1500 جنية

يتم تحصيل القسط كل: 6 أشهر

 

جدول الاقساط طيلة مدة العقد حتى يتم السداد:

رقـــم الــــعـــقـــد         تاريخ الاستـــــــحقاق                    المبلغ المستحق

    5                        01 / 01 / 2014                        1500 جنية

    5                        01 / 07 / 2014                        1500 جنية

    5                        01 / 01 / 2015                        1500 جنية

    5                        01 / 07 / 2015                        1500 جنية

    5                        01 / 01 / 2016                        1500 جنية

    5                        01 / 07 / 2016                        1500 جنية

 

المطلوب: عمل كيويري للحصول على جدول الأقساط من خلال الاعتماد على بيانات العقود

 

 

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

 

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

contract.rar

تم تعديل هذه المشاركة بواسطة hamada33n@yahoo.com في 21 يناير 2014 في 18:02

#2

تفضل اخي :)

 

لكني لم اعمل استعلام ، وانما عملت لك Listbox في النموذج ، اللي يمكنك ان تستخدمه في التقرير كذلك ،

والسبب اني ما عملت الاستعلام ، لانه لازم الدفعات تُدخل كسجل في احد الجداول ، سواء جدول خاص بالدفعات ، او جدول مؤقت ،

وانا ما حبيت ان اعمل طريقة غير تقليدية :)

 

هذا الكود اللي يعبئ بيانات Listbox:

Private Sub Form_Current()

    Me.lst_Payments = ""
    Me.lst_Payments.RowSource = "رقم العقد;تاريخ الاستحقاق;المبلغ المستحق"
    
    sDate = Me.Contract_start_date
    
    For i = 1 To (Me.Contract_Duration * 12) Step Me.Pay_every_month
    
        Me.lst_Payments.RowSource = Me.lst_Payments.RowSource & ";" & Me.contract_ID & ";" & _
                                    Format(DateAdd("m", i - 1, sDate), "dd-mm-yyyy") & ";" & _
                                    Me.Fixed_premium & " جنيه"
    Next i
    
    
End Sub

وكل اللي عليك عمله ، هو انك تنقر في اي من السجلات في الاعلى ، وتأتيك النتائج في الاسفل:

 

post-273849-0-82122100-1390331795_thumb.

 

 

جعفر

143.contract.accdb.zip

1
#3

جزاك الله خير الطريقة حلوة جدا جدا جدا و فيها فكرة ممتازة و أستخدمتها في الفورم جميل صراحة

لكن أنا اريد طريقة الكويري حتى أتمكن من عمل تقرير عنها

#4 أفضل إجابة

تفضل :)

 

الآن عندك تقريرين

post-273849-0-51102100-1390419056_thumb.

 

التقرير الاول معتمد على قيم Listbox النموذج ، فلا يحتاج الى جدول:

post-273849-0-24460200-1390419083.jpg

 

التقرير الثاني يعتمد على الجدول tbl_Payments ، والذي يتم تعبئة بياناته بنفس طريقة تعبئة Listbox:

post-273849-0-18092700-1390419110_thumb.

 

وهذا الكود الكامل للنموذج:

Option Compare Database

Private Sub cmd_Print_Preview_Click()

    DoCmd.OpenReport "rpt_Contracts", acViewPreview
    
End Sub

Private Sub cmd_Print_Preview_tbl_Payments_Click()

    DoCmd.OpenReport "rpt_payments", acViewPreview, , "[Contract_ID]=" & Me.contract_ID
    
End Sub

Private Sub Form_Current()

'Form
    Me.lst_Payments = ""
    Me.lst_Payments.RowSource = "رقم العقد;تاريخ الاستحقاق;المبلغ المستحق"
    
    sDate = Me.Contract_start_date
    For i = 1 To (Me.Contract_Duration * 12) Step Me.Pay_every_month
    
        Me.lst_Payments.RowSource = Me.lst_Payments.RowSource & ";" & Me.contract_ID & ";" & _
                                    Format(DateAdd("m", i - 1, sDate), "dd-mm-yyyy") & ";" & _
                                    Me.Fixed_premium & " جنيه"
    Next i
    
    
    
'Table
    'only add new values, if it doesn't exists in tbl_Payments
    is_it_there = DCount("*", "tbl_Payments", "[contract_ID]=" & Me.contract_ID)
    If is_it_there > 0 Then Exit Sub
    
    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("Select * From tbl_Payments")
    
    sDate = Me.Contract_start_date
    For i = 1 To (Me.Contract_Duration * 12) Step Me.Pay_every_month
    
        rst.AddNew
        rst!contract_ID = Me.contract_ID
        rst!payment_Date = Format(DateAdd("m", i - 1, sDate), "dd-mm-yyyy")
        rst!payment_Amount = Me.Fixed_premium & " جنيه"
        rst.Update
    Next i

    rst.Close: Set rst = Nothing
    
End Sub

جعفر

143.contract.accdb.zip

1
#5

جزاك الله خير،،،،،،، نعجز عن الشكر الله يبارك في عمرك :rolleyes:

#6

حياك الله :)

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

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

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

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

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

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