moho58 قام بنشر ديسمبر 10 قام بنشر ديسمبر 10 السلام عليكم الإخوة الأفاضل في هذا المنتدى الجميل في هذا الموضوع أريد أن أعرض تقرير حسب الاختيار من مربع قائمة (اختيار واحد أو اختيار متعدد) من النمودج وعند اختيار السنة ثم اختيار من مربع القائمة (الدرجة ثم الفوج) أريد في التقرير أن تظهر قائمة الطلاب فقط الذين تم اختيارهم من مربع القائمة (حسب نموذج التقرير المسمى rap_list) - كمثال في الصورة المرفقة تظهر جميع الطلاب لسنة 2024 وأنا أريد أن يظهر فقط الطلاب الذين تم اختيار السنة و الدرجة والفوج الخاصة بهم الرجاء المساعدة والتوجيه وبارك الله فيكم base_m.accdb
أفضل إجابة Foksh قام بنشر ديسمبر 10 أفضل إجابة قام بنشر ديسمبر 10 وعليكم السلام ورحمة الله وبركاته أخي @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 وأخبرنا بالنتيجة 1
moho58 قام بنشر ديسمبر 10 الكاتب قام بنشر ديسمبر 10 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 وأخبرنا بالنتيجة الأخ الخبير الفاضل شغال بامتياز وبدون مشاكل هذا هو المطلوب بالضبط بالتفصيل أخي الكريم جزاك الله كل الخير على مد يد المساعدة وجعلها الله في ميزان حساناتك إن شاء الله ألف شكر وامتنان أخي ------------ أخي إن أمكن عند اختيار الدرجة من مربع القائمة أريد أن تظهر هذه الدرجة (ما تم اختياره) في مربع نص في أعلى التقرير كما في الصورة إذا تم اختيار من مربع القائمة الدرجة: أستاذ : يظهر في التقرير : الدرجة : استاذ وإذا تم اختيار من مربع القائمة الدرجة: استاذ و معلم : يظهر في التقرير: الدرجة: أستاذ - معلم (نفصل بين الدرجات بواسطة : -) وهكذا.. وإن تعذر أخي فالجواب السابق كافي و وافي وشكرا جزيلا مرة أخرى 1
Foksh قام بنشر ديسمبر 11 قام بنشر ديسمبر 11 بسيطة يا صديقي .. تستطيع ذلك بعدة طرق ، منها :- اولاً تعريف متغير عام في أي وحدة نمطية أو وحدة نمطية جديدة ، كما تريد 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 1
moho58 قام بنشر ديسمبر 11 الكاتب قام بنشر ديسمبر 11 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 وجزاك الله خيرا ان شاء الله
moho58 قام بنشر ديسمبر 14 الكاتب قام بنشر ديسمبر 14 الأخ الفاضل @Foksh عندما يكون عندك الوقت وتتيح الفرصة وإذا فيه إمكانية لتجسيد الفكرة ألقي نظرة على طلبي (التعديل الأخير) وبارك الله فيك وجزاك خيرا
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.