منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : استثناء شرط من قاعدة Select Count
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
أعمل باحدى المدارس واواجه مشكلة فى تحديد مستويات الطلاب

حيث ان العمود الخاص بدرجات الطلاب (نصى) لأن به درجات وبه نصوص فأحياناً يدون للطالب (معفى)
لذا فالعمود الذى يحتوى على الدرجات (نصى)
وتغلبت على المشكلة فى حصر أعداد الطلاب وفقاً لدرجاتهم
باستخدم ( Val ) للتعامل الدرجات

ولكنى الأن تواجهنى مشكلة أن أعداد الطلاب المعفيين تدخل ضمن أعداد الحاصلين على (صفر)
فأريد أن استثنى الطلاب المدون لهم (معفى) من مجموع الطلاب الحاصلين على (صفر)
وها هو الاستعلام الذى استخدمه :

كود :
sql = "select (select count(Arabic)from Table where val (Arabic) between 0 and 19.5),(select count(English)from Table where val (English) between 0 and 14.5) from Table"
أهلا أخي الكريم , جرب بعد هذا التعديل على جملة الإستعلام :

PHP كود :
sql "select (select count(Arabic) from Table where Instr(1,Arabic, 'معفى') =0 and val (Arabic) between 0 and 19.5),(select count(English) from Table where Instr(1,English, 'معفى') =0 and val (English) between 0 and 14.5) from Table" 

أو بطريقة أخرى لكي يتضح لديك الإستعلام كونه تلخبط بفعل وضع الكلمة العربيه :

PHP كود :
zWord "معفى"
sql "select (select count(Arabic) from Table where Instr(1,Arabic, ' & zWord  & "') =0 and val (Arabic) between 0 and 19.5),(select count(English) from Table where Instr(1,English, 'zWord  "') =0 and val (English) between 0 and 14.5) from Table" 
ماشاء الله عليك اخي احمد
ربي يحفظك
جزاك الله اخرى الكريم لسرعة التفاعل واعتذر عن التأخر فى الرد لظروف الامتحانات
جارى التجربة وموافاتك بالنتيجة.
لكن ماذا لو اردت استثناء شرط أخر أو أكثر.
أهلا بك أخي الكريم ، ماهي الشروط الأخرى أذكرها لنحاول عمل الإستعلام المناسب لها .
الشروط أخى العزيز هى :
(دولى ، معفى ، منازل ، غ )

وللتوضيح اكثر لعل هناك طريقة تصل بى للمطلوب بشكل ابسط
أنى أريد أن أحسب عدد الطلاب الحاصلين على درجات فعلية ، ولكن هناك طلاب يدون بخانة درجاتهم بعض الكلمات مثل السابق ذكرها
أهلا أخي الكريم , الحل لمشكلتك ولكي تتجاهل أي قيمة يكون فيها أي حرف أو كلمة هو بإستخدام دالة IsNumeric في الإستعلام حيث هذه الدالة ترجع True إذا كانت القيمة رقم وليس فيها أي حروف وترجع False إذا كانت فيها أي حروف أو رموز ليست خاصة بالأرقام , إذا سيكون الإستعلام بعد إضافة الدالة له بهذا الشكل :

PHP كود :
sql "select (select count(Arabic) from Table where IsNumeric(Arabic) =True and val (Arabic) between 0 and 19.5),(select count(English) from Table where IsNumeric(English) =True and val (English) between 0 and 14.5) from Table" 
كل الشكر والاحترام لك أخى العزيز ، تمت التجربة بنجاح
ولى رجاء الا تمل من أسئلتى المتكررة فالمشروع الذى أعمل به قائم على احصاءات لا مجال فيها للخطأ
ولى عودة مرة اخرى ان شاء الله لاستزيد من اجابتك الشافية معرفةَ وعلماً
أهلا أخي الكريم ، شكرا لك ، لا بالعكس أخي إسأل بقدر ماتريد وإن شاء الله يقدرنا الله على إجابتك ، أهلا وسهلا بك .
استخدم  ADODB فى مشروعى

كود :
Dim DB As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String

Private Sub provd()
   If DB.State = adStateOpen Then DB.Close
   DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123; Data Source=" & App.Path & "\data.mdb"
   If rs.State = adStateOpen Then rs.Close
End Sub

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

كذلك كيف يمكن نقل البيانات الناتجة عن الاستعلامات الى جداول اخرى
الصفحات : 1 2