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

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

قام بنشر

السلام عليكم

تحياتي لاعضاء المنتدى الكرام

عندي قاعدة بيانات وبها مجموعة من الحقول وقمت بعمل استعلام يضم كل هذه الحقول واريد عمل تقرير استطيع من خلاله اختيار اي من هذه البنود وربطها بتقرير يظهر فيه البنود التي تم اختيارها دون غيرها بمعني عندي حقول باسم ( الاسم ، السن ، محل الميلاد، البلد، المستوى العلمي) واريد عند فتح التقرير يكون عندي امكانيةاختيار اي بند من البنود المذكوره يعني لو احتاجت يظهر فى التقرير ( الاسم ، محل الميلاد ، البلد) ولو حبيت اعمل نفس التقرير ولكن ببنود مختلفه (الاسم والمستوى العلمي ) ... الخ

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

شاكر ليكم جدا 

  • ابوخليل changed the title to المساعده فى عمل تقرير بشكل معين _ عرض حقول محددة حسب الاختيار
قام بنشر

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

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

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

للتوضيح اكتر: عندي جدول به بعض البنود التاليه

الرقم - القطاعات - داخل مصر - خارج مصر - المحافظة - المدينة - اسم الشركة .. الخ

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

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

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

وبعتذر على الاطاله وجزاكم الله خير الجزاء

datatest.accdb

قام بنشر

فكرة رائعة جدا جدا

وهى مجسدة فى ذهنى ...

ولكن

للأسف لا توجد لدى الخبرة لإخراجها الى النور ...

وسأنتظر معك يا غالى حلا من خبراء المنتدى

فهم لها ...

فهم لها ...

قام بنشر

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

حقيقة المنتدي واعضاءه لا يبخلون بالعطاء لاي شخص يحتاج مساعده

في انتظار الاخوه ذوي الخبرات لتنفيذها ولهم جزيل الشكر فى كل الاحوال 

 

قام بنشر (معدل)


1. إنشاء نموذج  وأضف إليه عناصر تحكم للاختيار، مثل صناديق اختيار أو قوائم منسدلة، للحقول التي ترغب في اختيارها في التقرير.

2. قم بتطبيق حدث في النموذج مع زر الطباعة لتنفيذ الاستعلام وعرض التقرير

 


Private Sub btnGenerateReport_Click()
    ' استدعاء دالة لجمع الحقول المحددة
    Dim selectedFields As String
    selectedFields = GetSelectedFields()
    
    ' إنشاء استعلام استنادًا إلى الحقول المحددة
    Dim querySQL As String
    querySQL = "SELECT " & selectedFields & " FROM TableName;"
    DoCmd.SetWarnings False
    DoCmd.RunSQL querySQL
    
    ' إنشاء تقرير جديد وتعيينه للاستعلام
    DoCmd.OpenReport "ReportName", acViewPreview, , querySQL
    
    ' إعادة تشغيل تنفيذ الاستعلام
    DoCmd.SetWarnings True
End Sub

 

 

Private Function GetSelectedFields() As String
    ' حلقة من خلال عناصر تحكم الاختيار وجمع الحقول المحددة
    Dim selectedFields As String
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is CheckBox Then
            If ctrl.Value = True Then
                selectedFields = selectedFields & ctrl.Caption & ", "
            End If
        End If
    Next ctrl
    
    ' إزالة الفاصلة الأخيرة
    If Len(selectedFields) > 0 Then
        selectedFields = Left(selectedFields, Len(selectedFields) - 2)
    End If
    GetSelectedFields = selectedFields
End Function

 

تم تعديل بواسطه safaa salem5
قام بنشر

جرب دا كمان

1. قم بإنشاء استعلام يتضمن جميع الحقول التي ترغب في تضمينها في التقرير.

2. قم بإضافة صندوق اختيار لاختيار الحقول المطلوبة في النموذج. يمكنك وضع صناديق اختيار بجانب اسم كل حقل.

3. استخدم حدث "BeforePrint" لتحديث استعلام التقرير بناءً على الحقول المحددة. يمكنك استخدام الشفرة التالية كنموذج للحدث:

vba
Private Sub Report_BeforePrint(Cancel As Integer)
    Dim strSQL As String
    strSQL = "SELECT "

    If Me.CheckBox1.Value = True Then
        strSQL = strSQL & "Field1, "
    End If

    If Me.CheckBox2.Value = True Then
        strSQL = strSQL & "Field2, "
    End If

    ' استمر في إضافة الحقول الأخرى هنا

    strSQL = Left(strSQL, Len(strSQL) - 2) ' قم بإزالة الفاصلة الأخيرة

    strSQL = strSQL & " FROM YourTable"

    Me.RecordSource = strSQL
End Sub


5. قم بتعديل الشفرة أعلاه لكل صندوق اختيار واستبدل "CheckBox1" و "CheckBox2" بمعرف كل صندوق اختيار واستبدل "Field1" و "Field2" بمعرفات الحقول الخاصة بك.

 

قام بنشر

safaa salem5

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

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

test.accdb

قام بنشر
في 16‏/1‏/2024 at 22:18, safaa salem5 said:

جرب دا كمان

1. قم بإنشاء استعلام يتضمن جميع الحقول التي ترغب في تضمينها في التقرير.

2. قم بإضافة صندوق اختيار لاختيار الحقول المطلوبة في النموذج. يمكنك وضع صناديق اختيار بجانب اسم كل حقل.

3. استخدم حدث "BeforePrint" لتحديث استعلام التقرير بناءً على الحقول المحددة. يمكنك استخدام الشفرة التالية كنموذج للحدث:

vba
Private Sub Report_BeforePrint(Cancel As Integer)
    Dim strSQL As String
    strSQL = "SELECT "

    If Me.CheckBox1.Value = True Then
        strSQL = strSQL & "Field1, "
    End If

    If Me.CheckBox2.Value = True Then
        strSQL = strSQL & "Field2, "
    End If

    ' استمر في إضافة الحقول الأخرى هنا

    strSQL = Left(strSQL, Len(strSQL) - 2) ' قم بإزالة الفاصلة الأخيرة

    strSQL = strSQL & " FROM YourTable"

    Me.RecordSource = strSQL
End Sub


5. قم بتعديل الشفرة أعلاه لكل صندوق اختيار واستبدل "CheckBox1" و "CheckBox2" بمعرف كل صندوق اختيار واستبدل "Field1" و "Field2" بمعرفات الحقول الخاصة بك.

 

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

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