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

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

قام بنشر
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 )
خله عادي … ما له بشت 😐

 

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

ايون ينفع

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

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

 

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

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

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

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

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

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

 

 

 ما رأيكم  نشيل الصفر او القيمة المنطقية

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

 

 

  • Haha 1
قام بنشر

شرح دالة InStr

شكل وطريقة استخدام الدالة

InStr(string1, string2)

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

  • string1: السلسلة النصية الأساسية التي يتم البحث بداخلها
  • string2: السلسلة النصية المطلوب العثور عليها 
  • الناتج: رقم موضع أول تطابق أو 0 إذا لم توجد
InStr("123-456", "-")
' النتيجة: 4 (لأن "-" في الموضع الرابع)
InStr("abc", "z")
' النتيجة: 0 (لأن "z" غير موجودة)

InStr("ابو خليل:الاستاذ",":")
' 
النتيجة: 9
InStr("Mohamed", "h")
' النتيجة: 3 (لأن الحرف "h" أول ظهور له في الموضع الثالث)

InStr(5, "Banana", "a")  
' النتيجة: 5 (يبدأ من الموضع الخامس ويجد "a" في الموضع 5)


 

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

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

 

نستطيع استبدال الشرط كالآتي لإظهار القيم السالبة :-

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

 

  • Haha 1
قام بنشر
21 دقائق مضت, ابوخليل said:

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

اقصد انها زائدة  لا داعي لها

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

فمنطقيا هي true عند وجود المطلوب و  false عند عدمه  ... وحسب طلب مثل طلبي ( يعتمد على علامة السالب.. وهي وحيدة دوما) .. لسنا بحاجة لمعرفة مكان الحرف

14 دقائق مضت, ابو جودي said:

شرح دالة InStr

شكل وطريقة استخدام الدالة

InStr(string1, string2)

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

  • string1: السلسلة النصية الأساسية التي يتم البحث بداخلها
  • string2: السلسلة النصية المطلوب العثور عليها 
  • الناتج: رقم موضع أول تطابق أو 0 إذا لم توجد
InStr("123-456", "-")
' النتيجة: 4 (لأن "-" في الموضع الرابع)
InStr("abc", "z")
' النتيجة: 0 (لأن "z" غير موجودة)

InStr("ابو خليل:الاستاذ",":")
' 
النتيجة: 9
InStr("Mohamed", "h")
' النتيجة: 3 (لأن الحرف "h" أول ظهور له في الموضع الثالث)

InStr(5, "Banana", "a")  
' النتيجة: 5 (يبدأ من الموضع الخامس ويجد "a" في الموضع 5)

 

 

الحمد .. سؤال بسيط .. كنت متوقع اجابة واحدة فقط ... انظروا كم من من الفؤائد المحصلة

الف شكرا لكم اخوتي واحبتي على هذا التفاعل الايجابي .. جعله الله في موازين اعمالكم ، وغفر لنا ولكم ووالدينا ووالديكم .

  • Like 2
قام بنشر
24 دقائق مضت, Foksh said:

نستطيع استبدال الشرط كالآتي لإظهار القيم السالبة :-

 

انت مش قلت ما ينفعش يا عم انت :eek2:

 

يلا ارفع واشوت 

دى امثله للتوضيح

Public Sub TestInStrFunction()

    Dim strText As String
    Dim strSearch As String
    Dim intStart As Integer
    Dim intResult As Integer
        
    Debug.Print String(70, "=")
    Debug.Print "اختبار دالة InStr"
    Debug.Print String(70, "=")
    
    ' الحالة 1: البحث عن حرف موجود من البداية
    strText = "Mohesam"
    strSearch = "a"
    intStart = 1
    intResult = InStr(intStart, strText, strSearch)
    Debug.Print "الحالة 1: InStr(" & intStart & ", """ & strText & """, """ & strSearch & """) = " & intResult
    
    ' الحالة 2: البحث عن حرف موجود بعد الموضع الابتدائي
    intStart = 4
    intResult = InStr(intStart, strText, strSearch)
    Debug.Print "الحالة 2: InStr(" & intStart & ", """ & strText & """, """ & strSearch & """) = " & intResult

    ' الحالة 3: البحث عن حرف غير موجود
    strSearch = "z"
    intStart = 1
    intResult = InStr(intStart, strText, strSearch)
    Debug.Print "الحالة 3: InStr(" & intStart & ", """ & strText & """, """ & strSearch & """) = " & intResult
    
    ' الحالة 4: البحث في سلسلة فارغة
    strText = ""
    strSearch = "a"
    intResult = InStr(1, strText, strSearch)
    Debug.Print "الحالة 4: InStr(1, """ & strText & """, """ & strSearch & """) = " & intResult
    
    ' الحالة 5: البحث عن سلسلة كاملة داخل سلسلة
    strText = "Access VBA"
    strSearch = "VBA"
    intResult = InStr(1, strText, strSearch)
    Debug.Print "الحالة 5: InStr(1, """ & strText & """, """ & strSearch & """) = " & intResult
    
    ' الحالة 6: البحث عن نفس الكلمة في نفس النص
    strText = "abcabcabc"
    strSearch = "abc"
    intResult = InStr(1, strText, strSearch)
    Debug.Print "الحالة 6: InStr(1, """ & strText & """, """ & strSearch & """) = " & intResult

    ' الحالة 7: البحث من منتصف النص
    intResult = InStr(5, strText, strSearch)
    Debug.Print "الحالة 7: InStr(5, """ & strText & """, """ & strSearch & """) = " & intResult
    
    ' الحالة 8: البحث مع تطابق حالة الأحرف (غير افتراضي، لكن يمكن تخصيصه)
    strText = "TestCase"
    strSearch = "case"
    intResult = InStr(1, strText, strSearch)
    Debug.Print "الحالة 8: InStr(1, """ & strText & """, """ & strSearch & """) = " & intResult & "   (Compare = Binary افتراضي)"
    
    ' الحالة 9: استخدام المعامل الرابع للمقارنة الثنائية أو النصية
    intResult = InStr(1, strText, strSearch, vbTextCompare)
    Debug.Print "الحالة 9: InStr(1, """ & strText & """, """ & strSearch & """, vbTextCompare) = " & intResult

    Debug.Print String(70, "=")
    
End Sub

Public Sub TestInStrCases()
    Debug.Print "=================================================="
    Debug.Print "اختبار دالة InStr"
    Debug.Print "=================================================="
    
    Debug.Print "الحالة 1: InStr(1, ""Mohesam"", ""a"") = "; InStr(1, "Mohesam", "a")
    Debug.Print "الحالة 2: InStr(4, ""Mohesam"", ""a"") = "; InStr(4, "Mohesam", "a")
    Debug.Print "الحالة 3: InStr(1, ""Mohesam"", ""z"") = "; InStr(1, "Mohesam", "z")
    Debug.Print "الحالة 4: InStr(1, """", ""a"") = "; InStr(1, "", "a")
    Debug.Print "الحالة 5: InStr(1, ""Access VBA"", ""VBA"") = "; InStr(1, "Access VBA", "VBA")
    Debug.Print "الحالة 6: InStr(1, ""abcabcabc"", ""abc"") = "; InStr(1, "abcabcabc", "abc")
    Debug.Print "الحالة 7: InStr(5, ""abcabcabc"", ""abc"") = "; InStr(5, "abcabcabc", "abc")
    Debug.Print "الحالة 8: InStr(1, ""TestCase"", ""case"") = "; InStr(1, "TestCase", "case")
    Debug.Print "الحالة 9: InStr(1, ""TestCase"", ""case"", vbTextCompare) = "; InStr(1, "TestCase", "case", vbTextCompare)
    
    Debug.Print "=================================================="
End Sub

 

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

وحسب طلب مثل طلبي ( يعتمد على علامة السالب.. وهي وحيدة دوما) .. لسنا بحاجة لمعرفة مكان الحرف

نعم لسنا بحاجة لمعرفة المكان

ولكن  الدالة ترجع 0 فى حالة عدم وجود موقع للعلامة 

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

 

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

انت مش قلت ما ينفعش يا عم انت :eek2:

 

المقارنة !!!!!!!!

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

اقصد انها زائدة  لا داعي لها

 

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

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.

  • تصفح هذا الموضوع مؤخراً   1 عضو متواجد الان

×
×
  • اضف...

Important Information