تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : عدد الغياب الإجمالي للمترشّحين الذكور
#1
السّلام عليكم و رحمة الله و بركاته
إخواني الأكارم ..
الرّجاء المساعدة بحل هذا اللغز لأنّي بصراحة دخت .. و فوق كل ذي علم عليم
مجموعة من المواد الدراسية
أريد أن أعمل إحصاء
مجموع الغيابات بكل المواد لكل المترشّحين الذكور
مجموع الغيابات بكل المواد  لكل المترشّحين الإناث
عدد الإناث يظهر صحيح و هو 3
ما لم أجد له حلا هو عدد الذكور .. من المفروض يكون 9 و ليس 8
قمت بتلوين خلايا الغياب للمترشحين الذكور بالأزرق فقط للتأكد من أنّ العدد 9 و ليس 8
لماذا لا يتم الحساب بالشكل السليم

بارك الله فيكم و لكم مقدمًا


الملفات المرفقة
.zip   WindowsApplication1.zip (الحجم : 107.3 ك ب / التحميلات : 21)
مجموعتنا على الفايسبوك
الرد
تم الشكر بواسطة: essawq
#2
حضرتك لا بد ان يكون اقواس بين كل شرطين معا
الرد
تم الشكر بواسطة: عبد العزيز البسكري , essawq
#3
(01-07-20, 11:23 PM)atefkhalf2004 كتب : حضرتك لا بد ان يكون اقواس بين كل شرطين معا

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

تحياتي واحتراماتي
مجموعتنا على الفايسبوك
الرد
تم الشكر بواسطة: essawq , ابراهيم ايبو
#4
السلام عليكم و رحمة الله و بركاته

الشرط في جملة select  هو الصفوف التي تحتوي على كلمة "غائب" 

و النتيجة المحددة للعرض في textbox هي عدد السجلات

اذا هو لا يقوم بعد الخلايا التي تحتوي على كلمة "غائب"

و انما يقوم بعد الصفوف التي تحتوي على كلمة "غائب"

فلو تكررت الكلمة مرتين في نفس الصف تكون النتيجة 1 و ليس 2

دقق في الصفوف تجد رقم 41 ذكر و غائب مرتين لذا قام البرنامج باحتسابه 1
الرد
#5
السّلام عليكم و رحمة الله و بركاته
نعم معك الحق أخي الكريم بكل كلامك بارك الله فيك و لك و جزاك خير الجزاء
هل تقصد يجب إستعمال  SUM بدلا من COUNT
تحياتي واحتراماتي
مجموعتنا على الفايسبوك
الرد
تم الشكر بواسطة: WaeLx , essawq , ابراهيم ايبو
#6
بطريقة الكود الخاصة بك يكون 8 وليس 9
والسبب هو تغيب الاى دى 41 مرتين الاولى فى اللغة العربية والثانية فى التربية
وبالكود الخاص بك انت تطلب عدد الاشخاصالتى تغيبت والافراد هنا 8
بينما عدد الغيابات بشكل عام للمواد هى 9
الرد
#7
(02-07-20, 03:05 AM)kiki كتب : بطريقة الكود الخاصة بك يكون 8 وليس 9
والسبب هو تغيب الاى دى 41 مرتين الاولى فى اللغة العربية والثانية فى التربية
وبالكود الخاص بك انت تطلب عدد الاشخاصالتى تغيبت والافراد هنا 8
بينما عدد الغيابات بشكل عام للمواد هى 9

كل الشكر و التقدير أخي الكريم
نعم فعلا هذا بيت القصيد بعد الإنتباه
و كيف يتم بلورة هذا الكود للتخلص من هذه الإشكالية .. لأنّ الأمر تعتمد عليه إحصاءات غير قابلة للتلاعب .. بارك الله فيك و لك
كود :
           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Absence_Arabe='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Physique='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Islamique='غائب'  And STUDENT_Gender='ذكر' Or STUDENT_Absence_Civile='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Mathematique='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Anglais='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Historique='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Francais='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Science='غائب' And STUDENT_Gender='ذكر' Or STUDENT_Absence_Amazighe='غائب' And STUDENT_Gender='ذكر'"

تحياتي واحتراماتي
مجموعتنا على الفايسبوك
الرد
تم الشكر بواسطة: essawq , ابراهيم ايبو
#8
(02-07-20, 02:41 AM)عبد العزيز البسكري كتب :
السّلام عليكم و رحمة الله و بركاته
نعم معك الحق أخي الكريم بكل كلامك بارك الله فيك و لك و جزاك خير الجزاء
هل تقصد يجب إستعمال  SUM بدلا من COUNT
تحياتي واحتراماتي


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

بالتاكيد هناك افكار اكثر احترافية مما سأكتب

لكن هذا ما خطر ببالي

كود :
Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Arabe='غائب'"
           Me.TextBox2.Text = Cmd.ExecuteScalar().ToString()
           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Physique='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())
       
   و هكذ الى اخر الاعمدة
الرد
#9
بارك الله فيك و لك و جزاك خير الجزاء أخي الكريم وائل
فعلا الطريقة تعطي نتيجة صحيحة و سليمة
و سأعتمدها بإذن الله .. اللهم إذا طرح أحد الإخوة الأعزاء فكرة نوعا ما مختصرة
كود :
Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Arabe='غائب'"
           Me.TextBox2.Text = Cmd.ExecuteScalar().ToString()

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Physique='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Islamique='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Civile='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Mathematique='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Anglais='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Historique='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Francais='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Science='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

           Cmd.CommandText = "SELECT COUNT(*) From TBL_STUDENT Where STUDENT_Gender='ذكر' And STUDENT_Absence_Amazighe='غائب'"
           Me.TextBox2.Text = Val(TextBox2.Text) + Val(Cmd.ExecuteScalar().ToString())

تحياتي واحتراماتي و تقييماتي
مجموعتنا على الفايسبوك
الرد
تم الشكر بواسطة: WaeLx , WaeLx , ابراهيم ايبو
#10
مرحباً اخى عبد العزيز البسكري
نظرياً لاتمام الامر يجب عليك كا فكرياً تحويل العمود الى صف والصف الى عمود
يعنى بعد ما كان رئس كل عمود بالجدول هو اسماء المواد فاصبح الامر عكسي ولاتمام ذلك
فعلك انشاء جدول وهمى خاصة بالداتا التى تتواجد فى الجدول الرئيسي لديك
يعنى مثلاً انا بقول كالتالى
كود :
select ahmed from tb
فهنا الـ tb الرئيسي لديك تريدك عكس الامور التى به لتعطي نتائج محددة
فهنا مش هينفع اقول from tb انما هقول كالتالى
كود :
From (Select......)
والوظيفة هنا هو الجدول للشكل الذى اريده لجلب البيانات التى بها بالطريقة المطلوبة
طيب لاتمام الامر وعدد الاسطر كثيرة فهنا سيتطلب انشاء لكل عمود جدول وهمي ليصبح الناتج
كود :
From (Select....), (Select....) .....
وبما انك لديك 10 اعمدة مطلوب التلاعب بها وهى خاصة المواد الدراسية فهنا سيتطلب عمل Select التى بعد From بعدد 10 مرات عن كل مدة
طبعاً بهذا الشكل اصبح كود الاستعلام كبير جداً ولاتمام الامر للذكر مرة ومن ثمة تكرار الامر للانثي مرة اصبح اكبر

ولكى اقوم بتوفير التكرار وحجم الكود فى الكتابة احببت ان اقوم بهذا التعديل على المشروع الخاص بك
كل ما علك التالى تاتى عند Sub الخاص بالتالى Recuperer_Record_Bachalaureat_Masculin_Feminin_Absence
وتقوم بحذف كل ما بداخله وتستبدله بالكود التالى
كود :
       If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
       Dim _Gender As String() = New String() {"ذكر", "أنثى"}
       Dim _Absent As String = "غائب"
       Using Cmd As OleDbCommand = New OleDbCommand(Nothing, Conne_2020)
           For i As Integer = 0 To 1
               Cmd.CommandText = "SELECT Sum(T1.Arabe + T2.Physique + T3.Islamique + T4.Civile + T5.Mathematique + T6.Anglais + T7.Historique + T8.Francais + T9.Science + T10.Amazighe) As Male
                               FROM

                               (SELECT
                               Count(*) AS Arabe
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Arabe = '" & _Absent & "') as T1,

                               (SELECT
                               Count(*) AS Physique
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Physique = '" & _Absent & "') as T2,

                               (SELECT
                               Count(*) AS Islamique
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Islamique = '" & _Absent & "') as T3,

                               (SELECT
                               Count(*) AS Civile
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Civile = '" & _Absent & "') as T4,

                               (SELECT
                               Count(*) AS Mathematique
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Mathematique = '" & _Absent & "') as T5,

                               (SELECT
                               Count(*) AS Anglais
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Anglais = '" & _Absent & "') as T6,

                               (SELECT
                               Count(*) AS Historique
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Historique = '" & _Absent & "') as T7,

                               (SELECT
                               Count(*) AS Francais
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Francais = '" & _Absent & "') as T8,

                               (SELECT
                               Count(*) AS Science
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Science = '" & _Absent & "') as T9,

                               (SELECT
                               Count(*) AS Amazighe
                               FROM
                               TBL_STUDENT
                               WHERE
                               STUDENT_Gender = '" & _Gender(i) & "' AND
                               STUDENT_Absence_Amazighe = '" & _Absent & "') as T10
                             "
               If (i) Then
                   TextBox3.Text = Cmd.ExecuteScalar().ToString()
               Else
                   TextBox2.Text = Cmd.ExecuteScalar().ToString()
               End If
           Next

       End Using
       If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()


قمت بعمل مسافة بين كل جزء فى كود الاستعلام حتى توضح لك الفكرة
وقمت ببعض اللمسات لعدم التكرار وتقليل من حجم الكتابة فى الكود وبالنهاية سيكون الناتج كالتالى 9 + 3
وبكده تكون اتمت المطلوب الذى تريده تماماً

طيب شى اضافى كده عنا ما كنت تقوم به مسبقاً تتذكر هذا الكود الخاص بك
كود :
SELECT COUNT(*)
From TBL_STUDENT
Where
STUDENT_Absence_Arabe='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Physique='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Islamique='غائب'  And STUDENT_Gender='ذكر'
Or STUDENT_Absence_Civile='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Mathematique='غائب' And STUDENT_Gender='ذكر'
Or STUDENT_Absence_Anglais='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Historique='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Francais='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Science='غائب' And STUDENT_Gender='ذكر' Or
STUDENT_Absence_Amazighe='غائب' And STUDENT_Gender='ذكر'
فى المرة القادمة عندما تريد استخدامه 
لتحديد عدد الافراد المتغيبين اجعلها بهذا الشكل
كود :
SELECT COUNT(*)
From (SELECT * From TBL_STUDENT Where STUDENT_Gender='ذكر')
Where
STUDENT_Absence_Arabe='غائب' Or
STUDENT_Absence_Physique='غائب' Or
STUDENT_Absence_Islamique='غائب' Or
STUDENT_Absence_Civile='غائب' Or
STUDENT_Absence_Mathematique='غائب' Or
STUDENT_Absence_Anglais='غائب' Or
STUDENT_Absence_Historique='غائب' Or
STUDENT_Absence_Francais='غائب' Or
STUDENT_Absence_Science='غائب'Or
STUDENT_Absence_Amazighe='غائب'

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

تم ارفاق المشروع بعد عمد بعد تعديلات ولمسات على شكل وترتيب الفورم وبعض الاكواد


الملفات المرفقة
.zip   WindowsApplication1.zip (الحجم : 48.84 ك ب / التحميلات : 20)
الرد


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [ تمّ الحل ] : تعديل على نص المخرجات لأوامر Command AT عبد العزيز البسكري 3 163 20-10-21, 07:24 PM
آخر رد: عبد العزيز البسكري
  استفسار بخصوص اخذ نسخه احتياطيه(تم الحل)مشكور اخوانى (waw والاخ asemshahen5) خالد كامل1 18 1,058 07-09-21, 09:45 PM
آخر رد: waw
  البار كود المنتج لا يقراء من جهاز الباركود [تم الحل] Rabeea Qbaha 1 3,850 24-08-21, 07:10 PM
آخر رد: أبووسم
  طلب بسيط من احبتى فى الله المتميزين وسهل تم الحل عن طريق (ابو انس +mrfenix93) خالد كامل1 5 679 05-07-21, 09:21 PM
آخر رد: ابو انس
  كيف ازيد ارتفاع سطر في داتا جريد فيو-تم الحل بواسطة /ابوانس/ خالد20 2 323 25-06-21, 12:58 PM
آخر رد: خالد20
  [تم الحل] اضافة صورة لقاعدة البيانات اكسس anes 2 570 12-06-21, 02:16 AM
آخر رد: anes
  ما سبب هذا الخطأ وكيف يتم الحل؟ أبو عبدالله الحلواني 6 829 28-01-21, 08:12 AM
آخر رد: ZaerAllail
  قمت بعمل مثال لإستخراج النصوص من الصورة واجهتني مشكلة اللغة العربية ماهو الحل mohamedgadain61 1 612 17-01-21, 07:54 AM
آخر رد: ابراهيم ايبو
  [تم الحل]العمليات الحسابية في الداتا جريد فيو essawq 15 1,741 14-01-21, 12:34 AM
آخر رد: essawq
  [ تمّ الحل ] : الطباعة من خلال الريبورت فيور عبد العزيز البسكري 2 638 16-12-20, 04:03 AM
آخر رد: عبد العزيز البسكري

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم