الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تلوين سجل له قيمة محددة

مغلق
بدأه ممتاز في 20 مايو 2006 · 10 رد · 4,585 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مالطريق لتلوين سجل محدد بلون معين

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

#2

هناك مثال مرفق للأخت زهرة قد يفيدك ...

لكن هذا المثال ينطبق فقط في حالة إذا كان النموذج (نموذج مفرد)

أما إذا وضعت النموذج (نماذج مستمرة) فقد لا يفي بالغرض

لذلك انا أطرح السؤال مرة أخرى:

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

______________________________________________.rar

#3

بارك الله فيك اخي ابو مالك

اخي الفاضل ممتاز

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

ولكن انتظر لحظه هنا لا يمكن تحقيق هذا الكود او الصيغة بهذه الطريقه في حال وجود شرط معين وهو تخصيص قيمه معينه للسجل كما في سؤالك لانك تريد مثلا ان يكون السجل الاول ذو القيمه 2 اصفر ويكون السجل رقم 6 ذو القيمه 3 رمادي هنا نقول ان الاكسيس سيقف حائرا اما هذا الشرط والصيغة ولن يعطي اي نتيجة .

اذن ما هو الحل ؟؟؟؟؟

حسنا دعنا نفكر في طريقه اخرى من خصائص الاكسيس ويقبل بها رغما عن انفه

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

1. ننشيء نموذج مستمر مبني على الجدول ( الى هنا الوضع طبيعي ولا يوجد جديد )

2. طبعا تقول انت في مشاركتك ان في الجدول حقل به قيم اما ان تكون 2 او 3 او غيرها من الارقام

4. لنفرض ان اسم هذا الحقل في الجدول والنموذج هو Val اختصار لكلمة Value وتعني قيمه .

اذن سيكون الحل ابتداء من هذه النقطه وهي القيمه ( الحقل Val ) اما ان يكون اصفر اذا كان العدد 2 او رمادي اذاكان العدد 3

تعقيب :

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

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

سنقوم الان بإنشاء مربع نص غير منظم على امتداد الحقول واعتيارا من اول حقل وهو ID حتى نصل الى اخر حقل وهو Val

بمعنى سيكون على شكل مستطيل يغطي كامل سطر السجل .

سوف نسمي مربع النص الغير منظم بإسم HColor

سنجعل مصدر تحكم البيانات لهذا الحقل هو الحقل Val

بمعنى ان اي قيمة في الحقل Val ستكون هي نفسها في الحقل الجديد HColor ( الحمد لله تخطينا اكبر عقبه ) هانت يا ممتاز

نقوم الان بإختيار مربع التص HColor ونضغط بالموس الايمن عليه ونختار تنسيق شرطي ( فكره جيده )

في التنسيق الشرطي سنختار الشرط الثاني ( طبعا اول ما تفتح التنسيق الشرطي الافتراضي ستجد اثنين الاول بدون شرط والثاني بشرط )

في خانة الشرط 1 نضع القيمه تساوي 2 واللون اصفر

نضغط على اضافة لاضافة شرط ثاني

في خانة الشرط 2 نضع القيمة 3 واللون رمادي

21_05_06_06_07_23_1148216843Hcolor.gif

نضغط موافق ونخرج من التنسيق الشرطي

لازال حقل HColor مختار نقوم الان بإختيار خصائصه ونضع الصيغ كما هي في الصوره حسب التحديد

21_05_06_06_15_27_1148217327Hcolor_.gif

لازال حقل HColor مختار نقوم بالذهاب لاشرطة قوائم الاكسيس ونختار تنسيق ومنها نختار اخر اختيار وهو ارسال للخلف

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

ما شاء الله تبارك الله عيني عليك بارده يا ممتاز ايه العظمه دي كلها

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

وهذا مثال تطبيقي عمل حاول تعمل واحد مثله على جهازك

zaRecordsColor2006.rar

اختكم

زهره

#4

zaRecordsColor2006.zip

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

وشكراً

من يتهيب صعود الجبال _ _ _ _ _

compu.gif_ _ _ _ _ يعش أبد الدهر بين الحفر
#5

الأخت الفاضلة زهرة

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

مثال وشرح أكثر من رائع جزاك الله خيراً...........

#6

اخي الفاضل

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

انظر الشرح على الصور لمعرفة الفرق بين الطريقتين

21_05_06_08_09_20_1148267360SAA.gif

21_05_06_08_10_13_1148267413SAAA.gif

اخي ابو مالك

استخدم هذا الحل المؤقت لحين البحث عن المشكلة علما بأن النموذج لدى مستقر ولا يعمل اي اهتزاز

عموما بإمكانك تصغير النموذج ثم استعادته

او استخدم هذا الكود

Private Sub Form_Load()
DoCmd.Minimize
DoCmd.Restore
End Sub

اختكم

زهره

1
#7

شكري وتقدير لكل من شارك في حل هذه المسألة ولكم خالص الشكر

ابو مالك1

zahrah

#8

الاخت العزيزة زهرة

برجاء شرح لنا هذا الاجراء لاني لم استطع فهمة

[id]

Mod 2>0

و هذا الاجراء

[id]

Mod 2=0

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

وأيضا ما معني كلمة

Mod

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#9

الاخت العزيزة زهرة

في انتظار ردك علي شرح الكود المذكور اعلاه

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#10

اخي الفاضل

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

ان العامل MOD هو احد العوامل الحسابية ( ويدعى باقي القسمه ) شأنه شأن اي عامل حسابي اخر مثل + الجمع والطرح - والضرب × والقسمه ÷ جميع هذه الصيغ يتم التعبير عنها بالتالي

* تعني الضرب

+ تعني الجمع

- تعني الطرح

/ تعني القسمه

^ تعني مرفوع للاس

Mod قسمة الرقم الأول على الرقم الثاني وإرجاع فقط باقي القسمة

فمثلا نريد قسمة عدد على عدد مع اظهار باقي القسمة نقول

العدد الاول MOD العدد الثاني

اما لمعرفة باقي قسمة عدد واحد فقط نقول

العدد المطلوب MOD

نأتي الان لعوامل المقارنه

اصغر من < يحدد ما إذا كانت القيمة الأولى أقل من القيمة الثانية.

اصغر من او يساوي <= يحدد ما إذا كانت القيمة الأولى أقل من أو تساوي القيمة الثانية.

اكبر من > يحدد ما إذا كانت القيمة الأولى أكبر من القيمة الثانية.

اكبر من او يساوي >= يحدد ما إذا كانت القيمة الأولى أكبر من أو تساوي القيمة الثانية.

يساوي = يحدد ما إذا كانت القيمة الأولى تساوي القيمة الثانية.

لا يساوي <> يحدد ما إذا كانت القيمة الأولى لا تساوي القيمة الثانية.

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

الشرط الاول :

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

الشرط الثاني :

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

ماذا نعني بالعدد الثاني 2

كما تعلم اننا نرغب بتلوين سجلات متناوبه بمعنى الاعداد الفردية بلون والاعداد الزوجية بلون مثلا السجلات 1 و 3 و 5 و 7 و.... بلون اصفر

ايضا السجلات الزوجية 2 و 4 و 6 و 8 و ..... بلون ازرق

وهذا ما يحدث من خلال استعمال MOD 2 >0 او MOD 2=0

اذن سيكون دائما الشرط على السجل الثاني فينظر الشرط للصيغة ويقوم بالتلوين

حسنا دعنا تجربة عدد 3 او 4 او 5 بدلا من الرقم 2

نأخذ مثلا العدد 3

نجد ان اول سجل سيأخذ اول قيمه ولونها وهي اللون الاصفر

وسنجد ان السجل الثاني اصبح بنفس لون السجل الاول

واصبح السجل الثالث له لون ازرق mod3

كذلك السجل الرابع والخامس اصبحت بلون اصفر

والسجل السادس اصبح لونه ازرق mod3

بمعنى ان الالوان تتعاقب بعد كل سجلين

اما في حالة العدد 4 فإن الالوان ستتعاقب بعد كل ثلاثة سجلات mod4

وفي حالة العدد 5 فإن الالوان ستتعاقب بعد اربعة سجلات mod5 ( السجل الاول والثاني والثالث والرابع لها لون اصفر والسجل الخامس له لون ازرق ) .

قم بالتجربه لاعداد اخرى وانظر النتيجه

لاحظ اننا استخدمنا الحقل [iD] في جميع العمليات

[ID] MOD 2 >0
[ID] MOD 2 =0

[ID] MOD 3 >0
[ID] MOD 3 =0

[ID] MOD 4 >0
[ID] MOD 4 =0

[ID] MOD 5 >0
[ID] MOD 5 =0

وهذا مثال عملي تطبيقي

zaRecordsColor2006_up.rar

اتمنى ان اكون قد اوصلت لك الفكره بطريقه سهلة وميسره

اختكم

زهره

1
#11

الأخت زهرة

لقد قمت بتطبيق المثال على نموذج لدي وكانت النتيجة ممتازة

لكن ظهرت لدي مشكلة

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

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

وبالتالي فإن السجلات التي ستظهر قد تكون هي رقم 1،3،4

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

والسجل الثالت سيأخذ اللون الآخر

وهذا يعني أنني لم استفد من خاصية تلوين سطر بلون والسطر الذي يليه بلون آخر!

فهل من حل ؟

هذا الموضوع مغلق.

مواضيع مشابهة