أهلا ,
1 - بالنسبة لعدد نسخ الكتب أعتقد مالها داعي يعني غير ضروريه لأنه اللي بيستعير لازم يكون فيه أصلا نسخ إذا مافيه نسخ كيف راح يستعير , لذلك الأفضل تركها .
2- أيضاً التسلسل غير ضروي إظهاره بما أن البحث يكون بإسم الكتاب .
3 - القسم موجود في الفورم الثالث لابد أن تختاري القسم قبل حفظ الإستعارة الجديدة .
4 - شرح الكود :
كود :
zSQL = "Select * From Borrow Where IsBack =False And DateDiff('d', BorrowDate, Now())> BorrowDuration And ("
For I = 0 To List1.ListCount - 1
If List1.Selected(I) = True Then
zSQL = zSQL & "SectionName ='" & Trim$(List1.List(I)) & "' Or "
End If
Next
zSQL = Left$(zSQL, Len(zSQL) - 4) & ")"
- عندنا متغير نصي بإسم zSQL لكي نخزن فيه جملة الإستعلام الذي يظهر لنا الكتب المتأخرة من جدول الإستعارة .
- أولا وضعنا نص جملة الإستعلام الأساسية في المتغير zSQL بالشروط التاليه : أن يكون قيمة الحقل IsBack تساوي False أو خطأ وهذه القيمة تعني أن الإستعارة لم ترجع بعد , والشرط الثاني أن يكون الفرق بالأيام بين تاريخ الإستعارة في الحقل BorrowDate وبين تاريخ اليوم الحالي أكبر من مدة الإستعارة والتي هي في الحقل BorrowDuration , إلى هنا هذه الشروط الأساسيه , نضيف عليها شرط أن تكون في أقسام معينه نقوم بإختيارها من اللست بوكس التي تظهر لنا في الفورم10 وطبعا بجانب إسم كل قسم في اللست بوكس يوجد مربع صغير لكل نعلم عليه بعلامة "صح" إذا نحن نريد أختياره , طيب لنفترض أننا أخترنا هذه الأقسام : فيزياء-إنجليزي-رياضيات إذا جملة الإستعلام بعد معرفة الأقسام التي نريدها لابد أن تكون بالشكل التالي :
كود :
Select * From Borrow Where IsBack =False And DateDiff('d', BorrowDate, Now())> BorrowDuration And (SectionName ='فيزياء' Or SectionName ='إنجليزي' Or SectionName ='رياضيات')
ولكننا سنركب أو سنضع الشرط الأخير من جملة الإستعلام واللي هو الأقسام سنضعه برمجيا لذلك سنضع الجزء الأساسي من الإستعلام والذي لابد أن يبقة ثابتاً سنضعه في المتغير الخاص بالإستعلام اللي هو zSQL ولكن نضع فقط بداية القوس الخاص بجزء الأقسام لأننا بعدها سنضيف أسماء الأقسام التي أختارها المستخدم برمجيا وذلك من خلال حلقة تكرارية For يعني نعمل لفه على جميع الأقسام في اللست بوكس ونفحص كل قسم إذا كان المربع الصغير الموجود بجانبه هل هو معلم عليه بعلامة "صح" أم لا إذا كان معلم عليه بعلامة "صح" يعني أن المستخدم أختاره والجزئية من الكود التي تفحص لنا هل إسم القسم تم إختياره أم لا هي هذه الجزئية :
كود :
If List1.Selected(I) = True Then
يعني إذا كان يساوي True أو صح يعني معلم عليه بعلامة صح يقوم بإضافة إسم هذا القسم لجملة الإستعلام ويضيف بعده كلمة Or لأنه ممكن يكون فيه قسم آخر تم إختياره بعد هذا القسم ولازم يفصل بين كل إسم قسم وآخر كلمة Or كما يلي :
كود :
zSQL = zSQL & "SectionName ='" & Trim$(List1.List(I)) & "' Or "
بعد الإنتهاء من فحص كل الأقسام في اللست بوكس نقوم بحذف كلمة Or من آخر جملة الإستعلام والتي ستكون عباره عن زياده لا فائده منها لذلك نقوم بقصها من آخر جملة الإستعلام حيث أن آخر جملة الإستعلام سيكون عبارة عن "مسافه" ثم كلمة Or ثم "مسافه" يعني عددها 4 خانات لذلك نقصها بالدالة Left ثم بعد أن نقصها الزياده الغير مرغوب بها نقفل جملة الإستعلام بالقوس الذي هو الجزء الأخير من شرط الأقسام في جملة الإستعلام , كما يلي :
كود :
zSQL = Left$(zSQL, Len(zSQL) - 4) & ")"
5- إذا تريدين عرض الكتب المستعاره مرتبه بتاريخ الإستعارة , قم بتعديل جملة الإستعلام فقط والموجوده في الفورم6 في زر "تقرير الكتب المستعارة" حيث هي بهذا الشكل :
كود :
DataEnvironment1.Recordsets.Item(1).Open "Select * From Borrow Where IsBack =False"
بعد التعديل ستصبح بهذا الشكل :
كود :
DataEnvironment1.Recordsets.Item(1).Open "Select * From Borrow Where IsBack =False Order By BorrowDate ASC"