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

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

مغلق
بدأه أبو منتظر في 22 أكتوبر 2006 · 11 رد · 3,841 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة والأخوات الأعزّاء في المنتدى

السلام عليكم

في الملف المرفق يوجد النموذج( القيد الحسابي )

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

أي بعبارة أخرى, تحرك لون هذا السجل على شكل شريط ملوّن إلى الأعلى أو الأسفل حسب تغير تركيز السجلات

مع الشكر الجزيل مقدما

أبو منتظر

Record_Color_Change.rar

#2

أخي الغالي أبو منتظر

كل عام وانت بخير

هل هذا ما تقصدة

برجاء مراجعة المرفق

Record_Color_Change.rar

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

أخي الأغلى محمد فؤاد

أسعد الله أيامك وتقبل الله طاعاتك

إن ماتفضلت به في التعديل ليس المطلوب !!

فالألوان أصبحت موجودة في كل السجلات

المطلوب هوظهور لون موحد لكل حقول السجل المتجاورة

( سجل معين , التركيز موجود في أحد حقوله )

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

مع الشكر مقدما

أخوك أبو منتظر

#4

للرفع مع الأعتذار!!!!!

#5

اخي ابو منتظر

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

وكل عام وانتم بخير

تفضل ملفك بعد التعديل

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

'Foreground لون الشريط اخضر فاتح
aPic(44) = 232   'B الازرق
aPic(45) = 255   'G الاخضر
aPic(46) = 232   'R الاحمر

Record_Color_Change_up.rar

#6

جزاك الله خيرا كثيرا وأحسن الله إليك طريقة جميلة ومبتكرة

#7

مشكورةً أستاذتي القديرة

ورزقت البصيرة في الدين وتمام العافية وحسن العاقبة .

أبو منتظر

#8

بعد التحية والسلام والأعتذار

بعد الأطلاع على التعديل لوحظت بعض الأشكالات :

1- العملية صحيحة لحد السجل السابع وبعد ذلك لايظهر الشريط الملون !!

2- الشريط الملون يجب أن يظهر أينما يتم النقر على اي سجل فقط , أي أينما يكون التركيز

فقط !!

3 - الشريط الملون ينتقل من سجل إلى آخر لوتم تحريك عجلة الماوس , في الوقت الذي

يجب أن يبقى هذا الشريط في السجل الذي فيه التركيز !!

عملية معقدة أليس كذلك ؟

ولكن لايعصى حلّها على أستاذتي الكريمة إن شاء الله .

أبومنتظر

#9

اخي الفاضل ابو منتظر

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

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

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

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

أولا :

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

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

ثانيا - اليك الطريقة :

1. يجب ان يكون لديك حقل ترقيم تلقائي في الجدول وليكن مثلا اسمه ID ( سنحتاج هذا الحقل في النموذج المستمر ) اذا كان لديك مسبقا فلا يوجد مشكله لانه سيظهر في النموذج .

2. نقوم بإنشاء مربعات النص التالية في قسم تفصيل للنموذج المستمر :

مربع نص غير منضم اسمه ctlCurrentRecord يكون حجمه مثل حجم ID تقريبا ( سنقوم بإخفاؤه فيما بعد ) . لا يوجد له مصدر تحكم

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

مربع نص غير منضم اسمه ctlCurrentLine يكون حجمه مثل حجم ID تقريبا ( سنقوم بإخفاؤه فيما بعد ) . يوجد له مصدر تحكم وهو

=GetLineNumber()

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

مربع نص غير منضم اسمه ctlBack يكون حجمه مستطيل ويغطي كافة حقول قسم التفصيل ويكون لونه شفاف .

ونضع له مصدر عنصر تحكم التالي :

=IIf([SelTop]=[ctlCurrentLine];"ggggggggggggggggggggggggggggggggggggggggggggg";Null)

ماذا يعني هذا الكود او العبارة :

هذا الكود يقوم بعمل شرط معين من خلال الدالة IIF والخاصية SelTop

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

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

قد تسأل وتقول ماهي خاصية SelTop وما فائدتها ؟

الاجابة : كتبتها لك بالانجليزي لانها اوضح وسوف اترجمها لك

You can use the SelTop property to specify or determine which row (record) is topmost in the current selection rectangle in a table, query, or form datasheet, or which selected record is topmost in a continuous form. The SelTop property returns a Long Integer value between 1 and the number of records in the datasheet or continuous form. The setting of this property specifies or returns the number of the topmost row in the current selection rectangle or the number of the topmost selected record in the continuous form.

الترجمه :

يمكنك من استخدام خاصية الـ SelTop لتحدد او تقرر اي صف ( سجل ) سيكون هو الاعلى للسجل الحالي في الجدول او الاستعلام او ورقة البيانات او في السجل المختار في النموذج المستمر .

هذه الخاصية تعيد قيمة عددية صحيحة ما بين العدد 1 وعدد السجلات التي في ورقة البيانات او النموذج المستمر .

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

نعود لمربع النص الغير منضم ctlBack وهو اطول مستطيل لدينا ونختار خصائصه ونضع التالي :

1. نوع الخط هو Webdings

2. حجم الخط هو 12

3. لون خلفية النص شفاف

4. لون الخط اصفر خفيف او اي لون تختاره ويفضل ان يكون فاتح حتى يظهر بيانات حقول السجل من خلفه .

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

نذهب الان الى محرر الفيجول بيسك والخاص بالاكواد ونضع هذا الكود

'دالة الحصول على رقم السجل
Function GetLineNumber() 
Dim RS As Recordset
Dim CountLines
Dim F As Form
Dim KeyName As String
Dim KeyValue

Set F = Form
KeyName = "ID" ' حقل الترقيم التلقائي
KeyValue = [ID] 'قيمة حقل الترقيم التلقائي

		 On Error GoTo Err_GetLineNumber
		 Set RS = F.RecordsetClone
		 ' البحث عن السجل الحالي
		 Select Case RS.Fields(KeyName).Type
			' البحث واستخدام  حقل الترقيم التلقائي
			Case DB_INTEGER, DB_LONG, DB_CURRENCY, DB_SINGLE, _
			DB_DOUBLE, DB_BYTE
			   RS.FindFirst "[" & KeyName & "] = " & KeyValue
			' البحث واستخدام قيمة حقل الترقيم التلقائي
			Case DB_DATE
			   RS.FindFirst "[" & KeyName & "] = #" & KeyValue & "#"
			' البحث وتطبيق المساواة بين قيمة الحفلين
			Case DB_TEXT
			   RS.FindFirst "[" & KeyName & "] = '" & KeyValue & "'"
			Case Else
			MsgBox "خطأ: حقل البيانات غير صالح"
			   Exit Function
			   End Select
		 ' المتابعة والاستمرار في ايجاد بقية ارقام السجلات .
		 Do Until RS.BOF
			CountLines = CountLines + 1
			RS.MovePrevious
			Loop
Bye_GetLineNumber:			   ' اعادة النتائج.
		 GetLineNumber = CountLines
		 Exit Function
Err_GetLineNumber:
	  CountLines = 0
	  Resume Bye_GetLineNumber
End Function

يوضع هذا الكود في حدث عند النقر على النموذج

Private Sub Form_Click()
Me!ctlCurrentRecord = Me.SelTop
End Sub

يوضع هذا الكود في حدث النموذج الحالي

Private Sub Form_Current()
Me!ctlCurrentRecord = Me.SelTop
End Sub

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

Private Sub Form_Open(Cancel As Integer)
Me.ViewREPORT.SetFocus
End Sub

اخر الخطوات :

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

نقوم الان بإخفاء مربعات النص الغير مرغوب فيها وهي

1. مربع النص الغير منضم ctlCurrentRecord

2. مربع النص الغير منضم ctlCurrentLine

3. وفي مثالك هذا اخفينا ايضا مربع النص ID لانك لا تحتاجه فلديك ترقيم خاص بك

وهذا مثالك بعد التعديل النهائي .

Record_Color_Change_zaUP2.rar

نتمنى لك التوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 30 أكتوبر 2006 في 00:25

1
#10

كم هي رائحة زكية تفوح دوماً من خلال الردود في هذا المنتدى

خصوصا من هذه المشاركة, رائحة متميزة لردٍ من زهرة المنتدى

يخفي خلفه جهوداً مضنية لساعات متواصلة من العناء والبحث والتفاني

والاخلاص من هذه الأ َمَةِ الصالحةِ المعلمة , بوركت هذه الجهود من قبل العلي القدير

وجعلت ذخرأ ليوم الفاقة

أبو منتظر

#11

أختي الغالية زهــــــــــــــــــــــرة

كم أنا معجب بطريقة شرحك السهلة الميسورة علي جميع الاعضاء

وكم أنا معجب بعلمك وبذكاء

وكم أتنمي أن أكون ثلثك

وكم وكم وكم وكم وكم وكم :rolleyes:

حفظك الله

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#12

بارك الله فيكم جميعا

والف شكر اخي ابو منتظر على هذه الكلمات الرقيقة

اخي واستاذي محمد فؤاد

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

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

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

اخي محمد

ان ما يأتي بسهوله يذهب بسهوله لهذا حاول دائما وابدا ان تدون اي معلومة جديده حتى لو تراها الان انها غير مهمه فسوف تحتاجها يوما من الايام .

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

2

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…