20-10-13, 11:23 PM
السلام عليكم
- في البداية لنفترض أن ستستخدم ثلاثة جداول , الأول لبيانات الإعضاء والثاني لبيانات الإشتراكات والثالث لبيانات السداد , وكل الجداول فيها أو بينها حقل مشترك وهو رقم الآي دي للعضو أو CustomerID .
- عندما يأتي عضو جديد , ستقوم بإدخال بياناته في جدول الأعضاء ثم ستقوم بإدخال بيانات إشتراكه في جدول الإشتراكات ومن بيانات الإشتراك سنة بداية الإشتراك وسنة نهاية الإشتراك يعني من إلى , ثم ستقوم بإضافة سجلات في جدول السداد بعدد الفرق بين سنين الإشتراك لديه يعني إذا كانت سنة البداية 2009 والنهاية 2020 تقوم بإضافة 11 سجل في جدول السداد كلها تحمل رقم هذا العضو ورقم السنة وتاريخ السداد والمبلغ المسدد وملاحظات .
- عندما يأتي العضو ليسدد تقوم بالإستعلام من جدول السداد برقم العضو لكي تختار السنة التي يريد سدادها , وتحفظ بيانات السداد , هكذا يتم التسديد .
- إذا كنت تريد إظهار السنوات المسددة والغير مسددة مع الغرامات التي ذكرتها , وبما أنك لكل عضو سجلات قليلة فضع نتيجة الإستعلام في أداة الفليكس قريد أو في أي أداة عرض عن طريق عمل لووب أو حلقة تكرارية وفي داخل الحلقة قم بإضافة الغرامات في أداة العرض كما تريد .
- لنفترض أن وقت حلول السداد لكل سنة هو تاريخ 25/12 من كل سنة , ولتفترض أنك قد قمت بسرد أسماء الأعضاء في كومبو بوكس , ويوجد أداة MsFlexGrid , فعند إختيار إسم العضو من الكومبو بوكس فضع هذا الكود في زر الإستعلام :
- شرح بعض المصطلحات في الكود , CustomerID هو حقل رقم العضو , Customers جدول الأعضاء , MemberShip جدول الإشتراكات , Amount حقل المبلغ أو قيمة الإشتراك في السنة , tblPaid جدول السداد , zYear حقل السنة في جدول السداد , AmountPaid حقل المبلغ المسدد في جدول السداد .
- ستضاف ثلاثة أعمدة في أداة الفليكس قريد الأول رقم السنة والثاني المبلغ المسدد والثالث مبلغ الغرامة .
- في البداية لنفترض أن ستستخدم ثلاثة جداول , الأول لبيانات الإعضاء والثاني لبيانات الإشتراكات والثالث لبيانات السداد , وكل الجداول فيها أو بينها حقل مشترك وهو رقم الآي دي للعضو أو CustomerID .
- عندما يأتي عضو جديد , ستقوم بإدخال بياناته في جدول الأعضاء ثم ستقوم بإدخال بيانات إشتراكه في جدول الإشتراكات ومن بيانات الإشتراك سنة بداية الإشتراك وسنة نهاية الإشتراك يعني من إلى , ثم ستقوم بإضافة سجلات في جدول السداد بعدد الفرق بين سنين الإشتراك لديه يعني إذا كانت سنة البداية 2009 والنهاية 2020 تقوم بإضافة 11 سجل في جدول السداد كلها تحمل رقم هذا العضو ورقم السنة وتاريخ السداد والمبلغ المسدد وملاحظات .
- عندما يأتي العضو ليسدد تقوم بالإستعلام من جدول السداد برقم العضو لكي تختار السنة التي يريد سدادها , وتحفظ بيانات السداد , هكذا يتم التسديد .
- إذا كنت تريد إظهار السنوات المسددة والغير مسددة مع الغرامات التي ذكرتها , وبما أنك لكل عضو سجلات قليلة فضع نتيجة الإستعلام في أداة الفليكس قريد أو في أي أداة عرض عن طريق عمل لووب أو حلقة تكرارية وفي داخل الحلقة قم بإضافة الغرامات في أداة العرض كما تريد .
- لنفترض أن وقت حلول السداد لكل سنة هو تاريخ 25/12 من كل سنة , ولتفترض أنك قد قمت بسرد أسماء الأعضاء في كومبو بوكس , ويوجد أداة MsFlexGrid , فعند إختيار إسم العضو من الكومبو بوكس فضع هذا الكود في زر الإستعلام :
كود :
Private Sub Command1_Click()
Dim CustomerID As Long
Dim CustomerAmount As Currency
If RS.State <> 0 Then RS.Close
RS.Open "Select CustomerID From Customers Where CustomerName='" & Trim$(Combo1.Text) & "'", DB, adOpenDynamic, adLockOptimistic
If RS.RecordCount > 0 Then
CustomerID = RS![CustomerID]
Else
If RS.State <> 0 Then RS.Close
MsgBox "لم يتم العثور على عضو بهذا الإسم", vbOKOnly + vbExclamation, Me.Caption
End If
If RS.State <> 0 Then RS.Close
RS.Open "Select Amount From MemberShip Where CustomerID=" & CustomerID, DB, adOpenDynamic, adLockOptimistic
If RS.RecordCount > 0 Then
CustomerAmount = RS![Amount]
Else
If RS.State <> 0 Then RS.Close
MsgBox "لم يتم العثور على هذا العضو في الإشتراكات", vbOKOnly + vbExclamation, Me.Caption
End If
If RS.State <> 0 Then RS.Close
RS.Open "Select * From tblPaid Where CustomerID=" & CustomerID & " Order By zYear,AmountPaid ASC", DB, adOpenDynamic, adLockOptimistic
If RS.RecordCount > 0 Then
Dim Is_First As Boolean
Is_First = True
MSFlexGrid1.Rows = 1
RS.MoveFirst
Do Until RS.EOF
If RS![AmountPaid] <= 0 Then
If RS![zYear] < Year(Date) Then
If Is_First = True Then
MSFlexGrid1.AddItem RS![zYear] & vbTab & RS![AmountPaid] & vbTab & CustomerAmount + (CustomerAmount * 0.5)
Else
MSFlexGrid1.AddItem RS![zYear] & vbTab & RS![AmountPaid] & vbTab & CustomerAmount * 2
End If
Else
MSFlexGrid1.AddItem RS![zYear] & vbTab & RS![AmountPaid] & vbTab & ""
End If
Else
MSFlexGrid1.AddItem RS![zYear] & vbTab & RS![AmountPaid] & vbTab & ""
End If
Is_First = False
RS.MoveNext
Loop
If RS.State <> 0 Then RS.Close
End If
End Sub- شرح بعض المصطلحات في الكود , CustomerID هو حقل رقم العضو , Customers جدول الأعضاء , MemberShip جدول الإشتراكات , Amount حقل المبلغ أو قيمة الإشتراك في السنة , tblPaid جدول السداد , zYear حقل السنة في جدول السداد , AmountPaid حقل المبلغ المسدد في جدول السداد .
- ستضاف ثلاثة أعمدة في أداة الفليكس قريد الأول رقم السنة والثاني المبلغ المسدد والثالث مبلغ الغرامة .
كود :
For each Breathe in MyLife
Breathe.Say " سبحان الله والحمد لله ولا إله إلا الله والله أكبر أستغر الله العظيم وأتوب إليه"
Next
