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

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

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

الوقت عندي قصير  كــــــ   04:10   أو بالسالب  04:10-

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

معلمي الفاضل ،

استخدام كلمة "الوقت" في وصفك هنا ؛ هل هذا دلالة على الفرق بين وقتين كما في الأفكار السابقة ( مواضيع سابقة ) ، وبالتالي نوع البيانات في الحقل = نصي أم تاريخ و وقت 🤔 أم ماذا ؟؟

وعلى الأرجح هو من نوع نص ( باعتقادي لا يمكن أن تكون قيمة حقل نوعه تاريخ و وقت = قيمة سالبة ) ؛ فقط للتأكيد !!

وعليه فإن أفضل فكرة خطرت لي هي تحويل الوقت الى رقم ، كمثال

القيم الموجبة بالدقائق= 250 ( لـ 04:10 )

القيم السالبة بالدقائق = -250 ( لـ 04:10- )

 

وفي التالي فكرة بسيطة في استعلام لجلب القيم السالبة للوقت :-

SELECT *
FROM Table1
WHERE (((IIf(Right([Modah],1)='-',-1,1)*(Val(Left([Modah],2))*60+Val(Mid([Modah],4,2))))<0));

 

TimeMin.accdb

  • Thanks 1
قام بنشر
منذ ساعه, Foksh said:

وبالتالي نوع البيانات في الحقل = نصي أم تاريخ و وقت 🤔 أم ماذا ؟؟

آآآآآه  نصي :yes:

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

هذا حقل نصي في تقرير اريد تلوينه حين يكون بالسالب .. باقصر طريق

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

هذا حقل نصي في تقرير اريد تلوينه حين يكون بالسالب .. باقصر طريق

طالما نوع الحقل نصي فالحل بسيط 

أضفت تقرير لمثال الأخ @Foksh تظهر فيه القيم السالبة باللون الاحمر

مع تحياتي

TimeMin.rar

  • Like 1
  • Thanks 1
قام بنشر

  

53 دقائق مضت, ابوخليل said:

حقل نصي في تقرير اريد تلوينه حين يكون بالسالب .. باقصر طريق

فقط استخدم فى خاصية التسيق الشرطى لعنصر هذا الحقل 

InStr([FieldName],"-")<>0

طبعا مع تغيير : FieldName  بما يتناسب معك واختر اللون 

هذا اقصر طريق داخل التقرير

 

ولو تريد التصفية فقط فى الاستعلام للقيم الموجبة استخدم فى معيار الحقل: FieldName

>InStr([FieldName],"-")<>0


اما لو تريد القيم السالبة فقط فى معيار الحقل FieldName

InStr([FieldName],"-")<>0

 

  • Like 1
قام بنشر
منذ ساعه, منتصر الانسي said:

أضفت تقرير لمثال الأخ @Foksh تظهر فيه القيم السالبة باللون الاحمر

 

تمام  التمام .. وهو ما تفضل به ابوجودي

ولكن نريد شرح لما يحدث : InStr([Modah];"-")<>0

الفاصلة في الدالة هي "-" لكنها في الحقل ":"

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

لطفا نريد شرح مفصل لما عمله هذا السطر

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

الفاصلة في الدالة هي "-" لكنها في الحقل ":"

 

إن سمحت لي بمداخلة :wub: ..

النقطتين ":" يتم استخدامها للفاصل الزمني في التنسيق hh:mm على سبيل المثال . أما إشارة "-" فهو ما استخدمناه حالياً لاكتشاف السالب . مع العلم أن الشرط لا يهمه وجود ":" بل يبحث فقط عن وجود علامة "-" في أي مكان في النص 😅 

ومن هنا نستطيع تعديل الشرط في التنسيق الشرطي ليشمل التلوين القيم السالبة أو القيم التي تساوي 00:00 بهذا التعديل :-

InStr([Modah],"-")<>0 Or [Modah]="00:00"

 

image.png.2cce05f6ecbe2afc48979e75012447cc.png

 

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

تمام  التمام .. وهو ما تفضل به ابوجودي

ولكن نريد شرح لما يحدث : InStr([Modah];"-")<>0

الفاصلة في الدالة هي "-" لكنها في الحقل ":"

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

لطفا نريد شرح مفصل لما عمله هذا السطر

الدالة InStr تبحث عن وجود سلسلة نصية داخل سلسلة أخرى
ترجع الموضع الرقمي لأول ظهور للجزء المطلوب (أي رقم أكبر من صفر) إذا تم العثور عليه
وترجع الرقم 0 إذا لم يتم العثور على الجزء المطلوب

تركيب الدالة هو:

InStr([النص الأصلي], [النص الذى نريد البحث عنه])
اذا

 

InStr([Modah];"-")<>0

   [Modah]
 هو الحقل الذي يحتوي على البيانات النصية اى هو النص الأصلى

 

"-"
هو النص الذى نريد البحث عنه   >-->>  علامة السالب

 

<>0 تعني
طالما أن علامة السالب موجودة في أي موضع داخل النص فيعتبر الشرط صحيح

 

طيب بالنسبة لسؤال حضرتك 

الفاصلة في الحقل ":" لكن الفاصلة في الدالة "-"
 

نركز فقط على ظهور علامة السالب (-) داخل القيمة الكاملة للحقل وليس على علاقة للفاصل ":" هنا لأننا لا نقوم بتقسيم القيمة بل فقط نبحث عن وجود علامة السالب (-)

 

لماذا لم تلون القيم التي تحتوي على صفر؟

لأن الشرط يبحث فقط عن وجود السالب علامة السالب (-)

"0:0" لا تحتوي على علامة السالب (-) 
الشرط يعطي False فلا يتم تلوينه

"-0:1" تحتوي على علامة السالب (-)
الشرط يعطي True فلذلك يتم تلوينه

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

لطفا نريد شرح مفصل لما عمله هذا السطر

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

كمثال :-

InStr("04:10-", "-")  => 6     ' لأن السالب هو الحرف السادس

بينما :-

InStr("04:10", "-")   => 0     ' لا يوجد سالب

 

هذا يعني "هل تحتوي القيمة الموجودة في الحقل [Modah] على علامة -"

فإذا كان موجود فعلاً = InStr ترجع رقماً (≠ 0)

وإذا لم يكن موجوداً = ترجع 0

فالمقارنة <> 0 معناها : إذا وجد السالب أم لا ..

قام بنشر

يا سلام شرح وافي وكافي

اعذروني . كنت اعرف  InStr زمان قبل ما تكبر وتعجز  🙃

يعني يصلح اكتب False بدلا من الصفر  ؟ صح ؟ بحيث تصبح :

InStr([FieldName],"-")<>False

 

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

يعني يصلح اكتب False بدلا من الصفر  ؟ صح ؟ بحيث تصبح :

 

في المقارنة العددية ؟؟؟؟؟؟

طبعاً لأ !!!

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

في المقارنة العددية ؟؟؟؟؟؟

طبعاً لأ !!!

ليه بس  كذا .. 😔

الكود وحسب الشروحات اعلاه .. يقول .. ابحث .. يا موجود  .. يا لا  

اذا موجود لبسه البشت

  • Haha 2
قام بنشر

ايون ينفع

نعم <> False يعمل لكنه أقل وضوح من <> 0 أو > 0

تذكر أن InStr ترجع رقم موضع وليس قيمة منطقية
لذلك من الطبيعي تقارنها بأرقام مش بقيم منطقية

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

الكود وحسب الشروحات اعلاه .. يقول .. ابحث .. يا موجود  .. يا لا  

 

مقصدي بوجه ثاني ..

InStr([Modah], "-") <> 0

يا آكسيس ، دورلي على علامة "-" في النص الموجود في الحقل [Modah] ..

إذا لقيتها ( يعني InStr رجعت رقم ≠ 0 )
"لبسه البشت" = فعل التنسيق الشرطي 😎

وإذا ما لقيتها ( يعني InStr رجعت 0 )
خله عادي … ما له بشت 😐

 

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

ايون ينفع

نعم <> False يعمل لكنه أقل وضوح من <> 0 أو > 0

تذكر أن InStr ترجع رقم موضع وليس قيمة منطقية
لذلك من الطبيعي تقارنها بأرقام مش بقيم منطقية

 

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

مقصدي بوجه ثاني ..

InStr([Modah], "-") <> 0

يا آكسيس ، دورلي على علامة "-" في النص الموجود في الحقل [Modah] ..

إذا لقيتها ( يعني InStr رجعت رقم ≠ 0 )
"لبسه البشت" = فعل التنسيق الشرطي 😎

وإذا ما لقيتها ( يعني InStr رجعت 0 )
خله عادي … ما له بشت 😐

 

 

 واحد يرفع والثاني يشوت .. ما يصير اثنين مقابل واحد  .. ما رأيكم  نشيل الصفر او القيمة المنطقية

اي نحذف الجملة  <>0   .. ونرتاح

 

 

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.

×
×
  • اضف...

Important Information