اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

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

في هذا الموضوع أريد أن أعرض تقرير حسب الاختيار من مربع قائمة (اختيار واحد أو اختيار متعدد)

من النمودج وعند اختيار السنة ثم اختيار من مربع القائمة (الدرجة ثم الفوج)

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

- كمثال في الصورة المرفقة تظهر جميع الطلاب لسنة 2024

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

الرجاء المساعدة والتوجيه وبارك الله فيكم

 

 

Sans titre.jpg

base_m.accdb

  • أفضل إجابة
قام بنشر

وعليكم السلام ورحمة الله وبركاته أخي @moho58 ،

جرب هذا الكود في زر عرض التقرير :-

 

    Dim varItem As Variant
    Dim strCriteria As String
    Dim strFilter As String
    If Me.lst_XX_100.ItemsSelected.Count = 0 Then
        MsgBox "لم تقم باختيار الدرجة", , "تنبيه"
        Exit Sub
    End If
    For Each varItem In Me.lst_XX_100.ItemsSelected
        If Len(strCriteria) > 0 Then
            strCriteria = strCriteria & " OR "
        End If
        strCriteria = strCriteria & "(grade = '" & Me.lst_XX_100.Column(0, varItem) & "' AND " & _
                                     "groupe = '" & Me.lst_XX_100.Column(1, varItem) & "')"
    Next varItem
    strFilter = "annee = '" & Me.ANNEE200 & "' AND (" & strCriteria & ")"
    DoCmd.OpenReport "rap_list", acViewPreview, , strFilter


وأخبرنا بالنتيجة :rol:

  • Like 1
قام بنشر
5 ساعات مضت, Foksh said:

وعليكم السلام ورحمة الله وبركاته أخي @moho58 ،

جرب هذا الكود في زر عرض التقرير :-

 

    Dim varItem As Variant
    Dim strCriteria As String
    Dim strFilter As String
    If Me.lst_XX_100.ItemsSelected.Count = 0 Then
        MsgBox "لم تقم باختيار الدرجة", , "تنبيه"
        Exit Sub
    End If
    For Each varItem In Me.lst_XX_100.ItemsSelected
        If Len(strCriteria) > 0 Then
            strCriteria = strCriteria & " OR "
        End If
        strCriteria = strCriteria & "(grade = '" & Me.lst_XX_100.Column(0, varItem) & "' AND " & _
                                     "groupe = '" & Me.lst_XX_100.Column(1, varItem) & "')"
    Next varItem
    strFilter = "annee = '" & Me.ANNEE200 & "' AND (" & strCriteria & ")"
    DoCmd.OpenReport "rap_list", acViewPreview, , strFilter


وأخبرنا بالنتيجة :rol:

الأخ الخبير الفاضل شغال بامتياز وبدون مشاكل

هذا هو المطلوب بالضبط بالتفصيل

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

ألف شكر وامتنان أخي

------------

أخي إن أمكن عند اختيار الدرجة من مربع القائمة

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

إذا تم اختيار من مربع القائمة  الدرجة: أستاذ  : يظهر في التقرير : الدرجة : استاذ

وإذا تم اختيار من مربع القائمة  الدرجة: استاذ و معلم : يظهر في التقرير:  الدرجة: أستاذ - معلم   (نفصل بين الدرجات بواسطة : -)

وهكذا..

وإن تعذر أخي فالجواب السابق  كافي و وافي

وشكرا جزيلا مرة أخرى

الصورة.jpg

  • Like 1
قام بنشر

بسيطة يا صديقي ..

تستطيع ذلك بعدة طرق ، منها :-

اولاً تعريف متغير عام في أي وحدة نمطية أو وحدة نمطية جديدة ، كما تريد

Public SelectedGrades As String

ثم ، تعديل الكود السابق ليصبح ما يلي :- 

    Dim varItem As Variant
    Dim strCriteria As String
    Dim strFilter As String
    Dim strSelectedGrades As String
    If Me.lst_XX_100.ItemsSelected.Count = 0 Then
        MsgBox "يرجى اختيار عنصر واحد على الأقل من الليست بوكس.", vbExclamation, "تنبيه"
        Exit Sub
    End If
    For Each varItem In Me.lst_XX_100.ItemsSelected
        If Len(strCriteria) > 0 Then
            strCriteria = strCriteria & " OR "
        End If
        strCriteria = strCriteria & "(grade = '" & Me.lst_XX_100.Column(0, varItem) & "' AND " & _
                                     "groupe = '" & Me.lst_XX_100.Column(1, varItem) & "')"
        If Len(strSelectedGrades) > 0 Then
            strSelectedGrades = strSelectedGrades & " - "
        End If
        strSelectedGrades = strSelectedGrades & Me.lst_XX_100.Column(0, varItem)
    Next varItem
    SelectedGrades = strSelectedGrades
    strFilter = "annee = '" & Me.ANNEE200 & "' AND (" & strCriteria & ")"
    DoCmd.OpenReport "rap_list", acViewPreview, , strFilter

 

الآن في التقرير في حدث عند التحميل ، وعلى افتراض ان لديك مربع نص (TX_LBL) ؛ نضع الجملة التالية

Me.Tx_Lbl.Value = SelectedGrades

 

ولضمان تفريغ قيمة المتغير عند اغلاق التقرير ، ضع في الحدث عند الاغلاق للتقرير ، الكود التالي

SelectedGrades = ""

 

وملفك بعد التعديل ، ويضم الحل السابق وهذا الحل .

base_m.accdb

  • Like 1
قام بنشر
5 ساعات مضت, Foksh said:

بسيطة يا صديقي ..

تستطيع ذلك بعدة طرق ، منها :-

اولاً تعريف متغير عام في أي وحدة نمطية أو وحدة نمطية جديدة ، كما تريد

Public SelectedGrades As String

ثم ، تعديل الكود السابق ليصبح ما يلي :- 

    Dim varItem As Variant
    Dim strCriteria As String
    Dim strFilter As String
    Dim strSelectedGrades As String
    If Me.lst_XX_100.ItemsSelected.Count = 0 Then
        MsgBox "يرجى اختيار عنصر واحد على الأقل من الليست بوكس.", vbExclamation, "تنبيه"
        Exit Sub
    End If
    For Each varItem In Me.lst_XX_100.ItemsSelected
        If Len(strCriteria) > 0 Then
            strCriteria = strCriteria & " OR "
        End If
        strCriteria = strCriteria & "(grade = '" & Me.lst_XX_100.Column(0, varItem) & "' AND " & _
                                     "groupe = '" & Me.lst_XX_100.Column(1, varItem) & "')"
        If Len(strSelectedGrades) > 0 Then
            strSelectedGrades = strSelectedGrades & " - "
        End If
        strSelectedGrades = strSelectedGrades & Me.lst_XX_100.Column(0, varItem)
    Next varItem
    SelectedGrades = strSelectedGrades
    strFilter = "annee = '" & Me.ANNEE200 & "' AND (" & strCriteria & ")"
    DoCmd.OpenReport "rap_list", acViewPreview, , strFilter

 

الآن في التقرير في حدث عند التحميل ، وعلى افتراض ان لديك مربع نص (TX_LBL) ؛ نضع الجملة التالية

Me.Tx_Lbl.Value = SelectedGrades

 

ولضمان تفريغ قيمة المتغير عند اغلاق التقرير ، ضع في الحدث عند الاغلاق للتقرير ، الكود التالي

SelectedGrades = ""

 

وملفك بعد التعديل ، ويضم الحل السابق وهذا الحل .

base_m.accdb 576 kB · 4 downloads

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

ومعذرة على التأخر في الرد

أعذرني أخي مرة أخرى إن أمكن :

هذا التعديل الأخير

مربع النص : Tx_Lbl  لا يكون مكرر

مثلا انا اخترت من النموذج من مربع القائمة الدرجة : أستاذ   الفوج 1 و 2 و3  

مربع Tx_Lbl  في التقرير  يكون فيها الدرجة: أستاذ    وليس : الدرجة  استاذ- أستاذ- استاذ

يعني الدرجة : لا يجب أن تكون مكررة في مربع  النص  Tx_Lbl 

وجزاك الله خيرا ان شاء الله

 

صورة.jpg

قام بنشر

الأخ الفاضل @Foksh  

عندما يكون عندك الوقت  وتتيح الفرصة وإذا فيه إمكانية لتجسيد الفكرة

ألقي نظرة على طلبي (التعديل الأخير)

وبارك الله فيك وجزاك خيرا

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information