اذهب الي المحتوي
أوفيسنا

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

قام بنشر

السلام عليكم

استخدم دالة لتغيير خصائص النماذج دفعة واحدة

مثل هذه :

Public Function funforms()
Dim frm As Object
For Each frm In CurrentProject.AllForms
    DoCmd.OpenForm frm.name, acDesign
    Forms(frm.name).PopUp = True
    DoCmd.Close acForm, frm.name, acSaveYes
Next
End Function

واريد تغيير لون خلفية مقطع التفاصيل وخلفية العناصر التي داخل التفصيل   في النماذج

ما التعديل الذي يحقق ذلك ؟

 

  • ابوخليل changed the title to مطلوب تغيير لون خلفية مقطع تفاصيل النماذج والعناصر دفعة واحدة
قام بنشر
3 دقائق مضت, ابوخليل said:

واريد تغيير لون مقطع التفاصيل  في النماذج

ما التعديل الذي يحقق ذلك

لم اجرب الكود ... جرب استاذنا الغالي التعديل التالي

Public Function funforms()
    Dim frm As Object
    Dim frmDesign As Form

    For Each frm In CurrentProject.AllForms
        DoCmd.OpenForm frm.Name, acDesign

        Set frmDesign = Forms(frm.Name)

        ' تغيير خصائص النموذج
        frmDesign.PopUp = True

        ' تغيير لون خلفية مقطع التفاصيل (مثلاً إلى لون رمادي فاتح)
        frmDesign.Section(acDetail).BackColor = RGB(240, 240, 240)

        DoCmd.Close acForm, frm.Name, acSaveYes
    Next frm
End Function

 

تأكد من أن جميع النماذج ليست مفتوحة في وضع "عرض" أو "تصميم" قبل تنفيذ الوظيفة

قام بنشر

وهذا ايضا

Public Function ChangeFormsDetailBackColor()
    On Error Resume Next
    Dim objForm As AccessObject
    Dim frm As Form
    Dim newColor As Long
    newColor = RGB(230, 255, 230) ' لون أخضر فاتح - يمكنك تغييره

    For Each objForm In CurrentProject.AllForms
        DoCmd.OpenForm objForm.Name, acDesign, , , , acHidden

        Set frm = Forms(objForm.Name)
        
        If Not frm Is Nothing Then
            ' تحقق من وجود مقطع التفاصيل
            If frm.Section(acDetail).Visible Then
                frm.Section(acDetail).BackColor = newColor
            End If

            DoCmd.Close acForm, objForm.Name, acSaveYes
        End If
    Next objForm

    Set frm = Nothing
End Function

 

عفوا لم انته للتعدي ... يبدو ردي وقت التعديل

  • Like 1
قام بنشر

طيب جرب هذا ....

Public Function ModifyFormsBackground()
    Dim frm As Object
    Dim ctl As Control
    
    For Each frm In CurrentProject.AllForms
        ' افتح النموذج في وضع التصميم
        DoCmd.OpenForm frm.Name, acDesign
        
        ' تغيير لون خلفية مقطع التفاصيل
        Forms(frm.Name).Detail.BackColor = RGB(240, 240, 240) ' لون فاتح رمادي
        
        ' تغيير خلفية العناصر داخل مقطع التفاصيل
        For Each ctl In Forms(frm.Name).Detail.Controls
            ' تغيير خلفية العناصر حسب نوعها
            Select Case ctl.ControlType
                Case acTextBox, acComboBox, acListBox, acCheckBox
                    ctl.BackColor = RGB(255, 255, 255) ' أبيض
                Case acLabel
                    ctl.BackColor = RGB(240, 240, 240) ' نفس لون خلفية المقطع
                    ctl.BackStyle = 1 ' خلفية معتمة
            End Select
        Next ctl
        
        ' احفظ وأغلق النموذج
        DoCmd.Close acForm, frm.Name, acSaveYes
    Next
End Function

 

  • Thanks 1
قام بنشر

جربت

كلها تعمل

ويبدو ان الثاني افضل كونه يعمل بالخفاء

.................................

ولكن الاخير شامل كامل .. فقط من رؤيته وقبل ان اجرب

بارك الله فيك وزادك علما .. 

الف شكر :fff:

  • Thanks 1
قام بنشر

بعد التجربة

هذا السطر  لا ولن يعمل

Forms(frm.Name).Detail.BackColor

أكسس لا يدعمه

ما رأيك ابو البشر  لو تم عمل دالة للألوان تشمل جميع مقاطع النموذج  وعناصره .. وتكون العناصر حسب المقطع

فمثلا لو اردت ان لون خلفية الرأس والذيل تختلف عن التفاصيل .. فمؤكد ان خلفية العناصر او اللون الأمامي سيختلف من مقطع لآخر

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

على فكرة : حاجتي انقضت بفضل الله ثم فضلك فجزاك الله خيرا

قام بنشر

جاء على بالي فكرة وهي قد تعجب بعض الاخوة الخبراء 

عمل فورم للتحكم بالوان النماذج وعناصرها سواء الألوان الخلفية أو الأمامية للعناصر

فقط للألوان لا يخرج الى غيرها

قام بنشر

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

مشاركتكم الأفكار ، بأن تكون الدالة معتمدة على الـ Tag بالإضافة الى الجدول ( أو بدونه بتضمين اللون في الاستدعاء ) ، بحيث كل مجموعة عناصر مشتركة في Tag واحد تأخذ نفس اللون بغض النظر عن موقعها !!

💡 مجرد فكرة ، ولكني نفذت مشابهاً لها في تغيير لون خلفية وخط عناصر من نوع ليبل حسب شرط محدد في مشروع لإدارة تأجير الشقق الفندقية والعقارات ،،

قام بنشر
8 دقائق مضت, ابو جودي said:

والدى الحبيب
فنظر الى فكرة تغيير الالوان هنا

 

جميل .. هذا نصف الطريق

نريد نموذجا على طريقة الأخ موسى  _ يجلب الى اي مشروع

يتم التحكم بكل مقطع  وتفاصيله لوحده

10 دقائق مضت, Foksh said:

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

مشاركتكم الأفكار ، بأن تكون الدالة معتمدة على الـ Tag بالإضافة الى الجدول ( أو بدونه بتضمين اللون في الاستدعاء ) ، بحيث كل مجموعة عناصر مشتركة في Tag واحد تأخذ نفس اللون بغض النظر عن موقعها !!

💡 مجرد فكرة ، ولكني نفذت مشابهاً لها في تغيير لون خلفية وخط عناصر من نوع ليبل حسب شرط محدد في مشروع لإدارة تأجير الشقق الفندقية والعقارات ،،

تمام  .. نأمل ان نحصل على طريقة اسهل 

قام بنشر
2 دقائق مضت, ابوخليل said:

جميل .. هذا نصف الطريق

نريد نموذجا على طريقة الأخ موسى _ فقط _ يجلب الى اي مشروع

يتم التحكم بكل مقطع  وتفاصيله لوحده

11 دقائق مضت, Foksh said:

تحت أمرك 

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

قام بنشر
1 دقيقه مضت, ابو جودي said:

تحت أمرك 

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

لسنا في عجلة من امرنا

شوف آخر كود لأخ ابي البشر

فيه تفصيل للعناصر

قام بنشر (معدل)
1 ساعه مضت, ابوخليل said:

ما رأيك ابو البشر  لو تم عمل دالة للألوان تشمل جميع مقاطع النموذج  وعناصره .. وتكون العناصر حسب المقطع

فمثلا لو اردت ان لون خلفية الرأس والذيل تختلف عن التفاصيل .. فمؤكد ان خلفية العناصر او اللون الأمامي سيختلف من مقطع لآخر

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

تفضل ................................

Public Function CustomizeAllFormSections()
    Dim frm As Object
    Dim ctl As Control
    Dim section As section
    Dim sectionsToProcess As Variant
    Dim i As Integer
    
    ' قائمة المقاطع التي نريد معالجتها
    sectionsToProcess = Array(acHeader, acDetail, acFooter)
    
    For Each frm In CurrentProject.AllForms
        On Error Resume Next ' لتجاوز الأخطاء
        
        ' فتح النموذج في وضع التصميم
        DoCmd.OpenForm frm.Name, acDesign, , , , acHidden
        If Err.Number <> 0 Then
            Debug.Print "تعذر فتح النموذج: " & frm.Name
            Err.Clear
            GoTo SkipForm
        End If
        
        ' معالجة كل مقطع
        For i = LBound(sectionsToProcess) To UBound(sectionsToProcess)
            If Not Forms(frm.Name).section(sectionsToProcess(i)) Is Nothing Then
                Set section = Forms(frm.Name).section(sectionsToProcess(i))
                
                ' تحديد ألوان فريدة لكل مقطع وعناصره
                Select Case sectionsToProcess(i)
                    Case acHeader ' الرأس
                        section.BackColor = RGB(173, 216, 230) ' أزرق فاتح
                        
                        ' ألوان عناصر الرأس
                        For Each ctl In section.Controls
                            Select Case ctl.ControlType
                                Case acTextBox, acComboBox, acListBox
                                    ctl.BackColor = RGB(240, 248, 255) ' أزرق شاحب
                                    ctl.BorderColor = RGB(70, 130, 180) ' أزرق داكن
                                Case acLabel
                                    ctl.BackColor = RGB(173, 216, 230) ' نفس خلفية الرأس
                                    ctl.ForeColor = RGB(0, 0, 139) ' أزرق داكن
                                    ctl.BackStyle = 1
                                Case acCommandButton
                                    ctl.BackColor = RGB(100, 149, 237) ' أزرق متوسط
                                    ctl.ForeColor = RGB(255, 255, 255) ' أبيض
                                Case acCheckBox, acOptionButton
                                    ctl.BackColor = RGB(240, 248, 255) ' أزرق شاحب
                                    ctl.ForeColor = RGB(0, 0, 0) ' أسود
                            End Select
                        Next ctl
                    
                    Case acDetail ' التفاصيل
                        section.BackColor = RGB(255, 255, 200) ' أخضر شاحب
                        
                        ' ألوان عناصر التفاصيل
                        For Each ctl In section.Controls
                            Select Case ctl.ControlType
                                Case acTextBox, acComboBox, acListBox
                                    ctl.BackColor = RGB(255, 255, 255) ' أبيض
                                    ctl.BorderColor = RGB(144, 238, 144) ' أخضر فاتح
                                Case acLabel
                                    ctl.BackColor = RGB(240, 248, 240) ' نفس خلفية التفاصيل
                                    ctl.ForeColor = RGB(0, 100, 0) ' أخضر داكن
                                    ctl.BackStyle = 1
                                Case acCommandButton
                                    ctl.BackColor = RGB(144, 238, 144) ' أخضر فاتح
                                    ctl.ForeColor = RGB(0, 0, 0) ' أسود
                                Case acCheckBox, acOptionButton
                                    ctl.BackColor = RGB(255, 255, 255) ' أبيض
                                    ctl.ForeColor = RGB(0, 0, 0) ' أسود
                            End Select
                        Next ctl
                    
                    Case acFooter ' التذييل
                        section.BackColor = RGB(255, 228, 225) ' وردي فاتح
                        
                        ' ألوان عناصر التذييل
                        For Each ctl In section.Controls
                            Select Case ctl.ControlType
                                Case acTextBox, acComboBox, acListBox
                                    ctl.BackColor = RGB(255, 250, 250) ' وردي شاحب
                                    ctl.BorderColor = RGB(205, 92, 92) ' بني محمر
                                Case acLabel
                                    ctl.BackColor = RGB(255, 228, 225) ' نفس خلفية التذييل
                                    ctl.ForeColor = RGB(139, 0, 0) ' أحمر داكن
                                    ctl.BackStyle = 1
                                Case acCommandButton
                                    ctl.BackColor = RGB(205, 92, 92) ' بني محمر
                                    ctl.ForeColor = RGB(255, 255, 255) ' أبيض
                                Case acCheckBox, acOptionButton
                                    ctl.BackColor = RGB(255, 250, 250) ' وردي شاحب
                                    ctl.ForeColor = RGB(0, 0, 0) ' أسود
                            End Select
                        Next ctl
                End Select
            End If
        Next i
        
CloseForm:
        ' حفظ وإغلاق النموذج
        DoCmd.Close acForm, frm.Name, acSaveYes
        
SkipForm:
        On Error GoTo 0
        Err.Clear
    Next
End Function

 

تم تعديل بواسطه ابو البشر
قام بنشر
35 دقائق مضت, ابو البشر said:

تفضل ................................

 

تمام ولا اجمل .. 100%

تبقى التطوير الى الاجمل :

1- اضافة ما تبقى من العناصر .. ومنها التسميات .. ولا شك اهميتها كبيرة

2- التحكم بهذه الألوان من نموذج .. على طريقة ( الذكر الحكيم) لابي جودي

التحكم سيكون اما مؤقت فقط حسب الاختيار .. متغيرات تأخذ القيم من خلال ما يتم من تعديل وموافقة

وإما عمل جدول يحفظ هذه الألوان بحيث اذا انتقل المصمم الى مشروع جديد ينقل الجدول معه ويطبق الألوان عليه

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