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

عمل خصم للأخوات

مغلقمُجاب
بدأه ahmad_3011 في 5 مارس 2014 · 13 رد · 1,050 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مرفق ملف به بيانات طلبة فى مراحل مختلفة والمطلوب وضع خصم فى خانة الخصم للطلبة الذين لهم اخوة بناء على القواعد التالية

1- اذا كان الطالب ليس له اخوة لا يوجد له خصم 

2- خصم 10% من المصروفات للأبن الثانى 

3- خصم 15% من المصروفات للأبن الثالث

4- خصم 20% من المصروفات للأبن الرابع

5- خصم 25% من المصروفات للأبن الخامس

 

وبالطبع يتم الخصم للأخ الأصغر فالاصغر فمثلا فى حالة وجود 3 اخوة طلبة الاول فى 6 ابتدائى لا ياخد خصم والثانى فى 4 ابتدائى 10% والثالث فى 2 ابتدائى 15% وهكذا

 

شكرا للأفادة

disc.rar

#2

اخي الكريم    تحية طيبة

اليك ملفك بعد اجراء التعديلات عليه وبطريفتين وفقا لما طلبت

disc.rar

#3

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

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

#4

اخي الكريم اسم الاب غير كافي فقد يتكرر اسم الاب وحتى الشهرة لاتكفي فقد تتكرر

فلنفكر سوية واعضاء المنتدى بالطريقة الانسب  والحساب على مستوى كل فرد لن يكون الا وفقا لما اروردت في الملف المعدل وبالطريقة التي تختار الاولى او الثانية 

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

تمنياتي لكم  بالتوفيق

#5

اخى الفاضل شكرا على الاهتمام 

اعتقد ان اسم الاب هو المؤشر الوحيد ان مسئولية عدم تكراره ستكون على مراجعى النظام وحتى فى حالة تشابه اسماء الاب سيتم وضع القاب عائلية حتى يتم انهاء المشكلة وبفرض عدم وجود اسم سيتم تعديل الخصم يدويا 

#6

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

الحساب في المثال السابق يتم تصفية النموذج وفق المؤشر الذي وضعته فتظهر اسماء الاخوة وكل حسب اشتراكه وفق ترتيبه  ثم في تذييل النموذج اجمالي  اشتراكات الاخوة

اتمنى ان تعجبك الفكرة

بالتوفيق إن شاء الله

disc.rar

تم تعديل هذه المشاركة بواسطة abduljalel في 6 مارس 2014 في 01:39

1
#7

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

مجهود مشكور ولكن تواجهنى مشكلة ان اخر 15 رقم قاعدة غير دقيقة لانها من الممكن أن تحسب الخصومات لابناء العمومة  :huh: وانا متأكد أنه توجد وسيلة لاستخدام اسم الاب حتى لو بنسبة اخطاء وان يقوم الكمبيوتر عن طريق loop باحتساب الخصم

تمنياتى بالتوفيق

#8

اخى الكريم

المقارنة عن طريق الاسم شىء صعب جدا ( ليس من الناحيه البرمجيه )

و لكن من الناحيه العمليه

لأن أى خطأ املائى سيؤثر بالنتائج

ناهيك عن تشابه الاسماء و ادخال الاسم بشكل غير كامل

 

لذلك يجب ان تعتمد على شىء ثابت

مثل الرقم القومى

 

 

على اى حال هذه داله ترجع اسم الاب

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

Public Function FatherName(ByVal Str As String) As String
On Error Resume Next
Dim st
st = Split(Str, " ")
FatherName = ""
If Len(Str & "") = 0 Then Exit Function
For i = 1 To UBound(st)
FatherName = FatherName & " " & st(i)
Next
End Function

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#9

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

اخى الفاضل ابو اسلام اشكرك على الادلاء بدلو فى هذه المسألة ولكن هل من الممكن التكرم باستخدام الدالة الموضحة فى المثال المرفق يكى يمكننى الاستفادة منها

#10

اعتقد ان الامر ببساطة ان يكون هناك اختيار yes/no  هل لدية اخوة  بالمدرسة و اختيا اخر عدد الاخوة
و هذا بيان طبيعي ان يملؤة شئون الطلاب . و كان يحدث فعلا معنا في كثير من مدارس الاولاد ان اجد هذا الاختيار في الاستمارة

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

post-29310-0-11153000-1392306828_thumb.j
#11

تطبيقا للدالة التى وضعتها من قبل

 

ضع هذا الكود بالنموذج

و بمجرد تحريك المؤشر الى حقل الخصم سيتم الحساب مباشرة

Private Sub Discount_GotFocus()
On Error GoTo ExitHandler
If Len(StName & "") > 0 And Len(GradeID & "") Then
Dim Brothers As Recordset

strSQL = "SELECT * FROM Students WHERE (((FatherName([StName])) ='" & FatherName(Me.StName) & "') And ((Students.GradeID) >" & Me.GradeID & ")) ORDER BY Students.GradeID DESC;"
Set Brothers = CurrentDb.OpenRecordset(strSQL)
If Brothers.RecordCount > 1 Then Brothers.MoveLast: Brothers.MoveFirst

Me.Discount = 0
If Brothers.RecordCount > 0 Then
    Me.Discount = ((Brothers.RecordCount - 1) * 5) + 10
End If
End If

ExitHandler:
    Set Brothers = Nothing
    Exit Sub
End Sub
2

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#12
أشار عليك الأخ Abo_Yossof  في المشاركة #8 باستخدام الرقم القومي وبالتأكيد يقصد الرقم القومي للأب وهو الأفضل

 

وبهذا تستطيع الاستعلام عن جميع أبنائة باستخدام الرقم القومي للأب

WHERE FatherID=123

 

وإن كانت المؤسسة تشمل عدة مراحل تضيف رقم المرحلة مثلا الابتدائية=1 والإعدادية=2 والثانوية=3

 WHERE FatherID=12345679 AND Marhala=1

.

أقوال مميزة من منتدى الفريق العربي للبرمجة (قيد التحديث)

 

الأستاذ: محمد طلال بدوي كتب:

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

الدكتورة: زهرة (أم عهود) كتب:

والله لا نريد من هذه الدنيا شيء إلا ان نكون اخوة متحابين في الله يجمعنا طلب العلم ومساعدة الآخرين لوجه الله تعالى.

.
#13

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

الاخ vbnetvbnet

شكرا للنصيحة ولكن الرقم القومى للأب ليس من ضمن البيانات المسجلة حاليا 

 

 

الاخ ahmedhosen

شكرا للتوضيح ولكنى اريد عدم تدخل العامل البشرى فى تحديد الاخوه والاخوات 

 

الاخ ابو يوسف

لقد وضعت هذا الكود كما قلت تماماً فى حدث التركيز للحقل Discount ولكنه يعطى رسالة خطأ عند كلمة FatherName  

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

ويقوم بوضع الخصم المناسب له

#14 أفضل إجابة

الخطأ يظهر لانك لم تضف الدالة الى البرنامج

فالكود المضاف يعتمد على الدالة الأولى

 

و الدالة يمكن استخدامها فى النموذج أو فى الاستعلام على حدا سواء

و يمكن عمل تحديث للجدول بالخصم

و لكن من الممكن ان يكون هناك أخطاء كما ذكرت من قبل نتيجة تشابه الأسماء أو الأخطاء الاملائية

 

المرفق به 3 طرق مختلفة لحساب الخصم

يمكنك اختيار ما يناسبك

disc.rar

1

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

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

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