jo_2010 قام بنشر الأحد at 15:23 قام بنشر الأحد at 15:23 السادة الخبراء الافاضل هل قاعدة if كدة مكتوبة صح If me. xxx <> 0 and isnull (me.yyy) or me.yyy="" then هنا مكتب الحدث Else Ebd if المقصود انة اذا كان yyy لايساوى صفر و Xxx فارغ كدة القاعدة سليمة لماذا لاتعمل معى
تمت الإجابة ابو عارف قام بنشر الأحد at 15:34 تمت الإجابة قام بنشر الأحد at 15:34 جرب هذا If me. xxx <> 0 and (isnull (me.yyy) or me.yyy="") then هنا مكتب الحدث Else Ebd if 1
ابو جودي قام بنشر الأحد at 19:04 قام بنشر الأحد at 19:04 و مشاركه مع استاذى القدير و معلمى الجليل الاستاذ @ابو عارف وطبعا بعد إذنه اضافة بسيطه If Me.xxx <> 0 And (IsNull(Me.yyy) Or Trim(Nz(Me.yyy, "")) = "") Then ' هنا نكتب الحدث Else End If Nz(Me.yyy, ""): يحول Null إلى "" Trim(...) = "": يتحقق إذا كانت النتيجة بعد إزالة المسافات فارغة مما يغطي Null , "" , " " 1
ابو عارف قام بنشر الأحد at 20:47 قام بنشر الأحد at 20:47 في 23/3/2025 at 19:04, ابو جودي said: وطبعا بعد إذنه Expand اي كلام ده!!! اباجودي يستأذن!! مش معول🤔 تفضل عزيزي @ابو جودي حياك الله إذننا دائما معك سؤال خطر ببالي حول دالتين Nz و Trim ولكن دالتين هذا يفيدنا في حالة استخدام قيمة متغير او عنصر ،Trim لإزالة مسافات يمين و يسار قيمة و Nz لإرجا فراغ عند عدم وجود قيمة ، ولكن هنا مطلوب التأكد ان كان حقل فارغ ام لا ، اذا فارغ خلاص قد تم ايفاء شرط و الا الشرط لايفي سواء بمسافات يمين و يسار أو بدونهم هذا حسب علمي طبعا و لو استاذنا كشف فيه ميزة اضافية ممكن يكرمنا بمثال بسيط الفرق بين استخدام تلك دالتين من عدمه. 1 1
ابو جودي قام بنشر الأحد at 21:38 قام بنشر الأحد at 21:38 في 23/3/2025 at 20:47, ابو عارف said: اي كلام ده!!! اباجودي يستأذن!! مش معول🤔 Expand طبعا مما لاشك فيه لابد للطالب من الاستئذان توقيرا واجلا للمعلم القدير الجليل في 23/3/2025 at 20:47, ابو عارف said: سؤال خطر ببالي حول دالتين Nz و Trim ولكن دالتين هذا يفيدنا في حالة استخدام قيمة متغير او عنصر ،Trim لإزالة مسافات يمين و يسار قيمة و Nz لإرجا فراغ عند عدم وجود قيمة ، ولكن هنا مطلوب التأكد ان كان حقل فارغ ام لا ، اذا فارغ خلاص قد تم ايفاء شرط و الا الشرط لايفي سواء بمسافات يمين و يسار أو بدونهم هذا حسب علمي طبعا و لو استاذنا كشف فيه ميزة اضافية ممكن يكرمنا بمثال بسيط الفرق بين استخدام تلك دالتين من عدمه. Expand حاسس انى اتدبست - او غلطت فى شئ - أو يتم اختبارى وأنا أقلق من هذه الموافق جدا ولكن سوف ادلى بدلوي فإن اخطأت فهذا مني ومن سوء فهمي وتقديري أنا و وقتها تصحون لي خطئي وجزاكم الله عني كل خير وإن أصبت فلقد تعلمت على ايديكم فأنتم أحد الأساتذة العظماء الذين أدين لهم بالفضل بعد رب العزة سبحانه وتعالي سؤالك جدا ممتاز يا أستاذي ويفتح مجالا لفهم أعمق لدالتي Nz وTrim خاصة في سياق التحقق من الحقول الفارغة دعني أوضح حسب فهمى المتواضح الفائدة من استخدام هاتين الدالتين ومتى تكونان ضرورييتان و ما الفرق بين استخدامهما أو عدمهما مع مثال أولا شرح الدالتين: 1- دالة Nz : Nz(Value, ValueIfNull) تستخدم لتحويل قيمة Null إلى قيمة أخرى محددة (مثل "" أو 0 حسب رغبة مطور النظم ) مفيدة جدا عندما تتعامل مع حقل قد يحتوي على Null لأن أي عملية مقارنة مع Null (مثل Null = "") ترجع Null وليس True أو False 2- دالة Trim : Trim(Value) تزيل المسافات البيضاء (Whitespace) من بداية و نهاية السلسلة النصية مثل " abs " أو " abs" أو "abs " تصبح "abc" لا تتعامل مع Null فإذا كانت القيمة هى Null فإن Trim(Null) يظل Null الهدف: تريد التحقق مما إذا كان الحقل (Me.yyy) "فارغا" أم لا "فارغ" قد يعني: Null (لا قيمة على الإطلاق) "" (سلسلة فارغة). " " أو " " (مسافات فقط) ** إذا كان الحقل فارغا بأي من هذه الحالات يتحقق الشرط و إذا كان يحتوي على قيمة فعلية (مثل "abc") لا يتحقق الشرط. سؤال حضرتك : هل استخدام Nz و Trim يضيف ميزة إضافية في هذا السياق أم أن التحقق الأساسي بـ IsNull و = "" كاف؟ 1- بدون Nz و Trim: If Me.xxx <> 0 And (IsNull(Me.yyy) Or Me.yyy = "") Then ' الشرط تحقق Else End If يتحقق الشرط إذا: Me.yyy هو Null Me.yyy هو "" (سلسلة فارغة) لا يتحقق الشرط إذا: Me.yyy يحتوي على مسافات فقط (مثل " " أو " ")، لأن " " <> "" Me.yyy يحتوي على نص (مثل "abc")، وهذا متوقع 2- مع Nz و Trim: If Me.xxx <> 0 And (IsNull(Me.yyy) Or Trim(Nz(Me.yyy, "")) = "") Then ' الشرط تحقق Else End If يتحقق الشرط إذا: Me.yyy هو Null (لأن Nz يحوله إلى "" و Trim("") = "") Me.yyy هو "" (لأن Trim("") = "") Me.yyy هو " " أو " " (لأن Trim(" ") = "") لا يتحقق الشرط إذا: Me.yyy يحتوي على نص فعلي (مثل "abc")، لأن Trim("abc") <> "" الميزة الإضافية لـ Nz و Trim: Nz: يضمن التعامل مع Null بطريقة آمنة مما يمنع أي أخطاء غير متوقعة إذا حاولت مقارنة Null مباشرة في الكود بدون Nz الشرط IsNull(Me.yyy) كاف لكن استخدام Nz يجعل الكود أكثر مرونة إذا أردت لاحقا إجراء عمليات إضافية على القيمة Trim: يضيف القدرة على اعتبار المسافات البيضاء (Whitespace) كقيمة "فارغة" بدون Trim إذا كان Me.yyy = " " »--»» فإن الشرط لن يتحقق لأن " " <> "" الفرق الأساسي: بدون Trim و Nz: لا يعتبر المسافات فقط (" ") فارغة مع Trim و Nz: يعتبر المسافات فقط فارغة بالإضافة إلى Null و "" الأمثلة العملبة : 1- الكود بدون Nz و Trim Me.xxx = 5 , Me.yyy = Null → "الشرط تحقق" Me.xxx = 5 , Me.yyy = "" → "الشرط تحقق" Me.xxx = 5 , Me.yyy = " " → "الشرط لم يتحقق" (لأن " " <> "") "Me.xxx = 5 , Me.yyy = "abc → "الشرط لم يتحقق" 2- الكود مع Nz و Trim Me.xxx = 5 , Me.yyy = Null → "الشرط تحقق" Me.xxx = 5 , Me.yyy = "" → "الشرط تحقق" Me.xxx = 5 , Me.yyy = " " → "الشرط تحقق" (لأن Trim(" ") = "") "Me.xxx = 5 , Me.yyy = "abc → "الشرط لم يتحقق" الخلاصة: إذا كان مطور النظم لا يهتم بالمسافات (مثل " " ) ويتعتبرها قيمة غير فارغة فالكود الأبسط بدون Nz و Trim كاف إذا كان مطور النظم يريد أن تعتبر المسافات فارغة (مثل " " ) فاستخدام Trim و Nz يعطي ميزة إضافية إذا نستخلص مما سبق أن Trim و Nz يجعلان الكود أكثر شمولية للتعامل مع جميع حالات "الفراغ" ( Null , سلسلة فارغة , مسافات فقط ) مما يجعله أكثر مرونة إذا كانت البيانات غير متسقة أو تحتوي على إدخالات غير متوقعة مثل المسافات 1 1
ابو عارف قام بنشر الأحد at 23:35 قام بنشر الأحد at 23:35 في 23/3/2025 at 21:38, ابو جودي said: الخلاصة: إذا كان مطور النظم لا يهتم بالمسافات (مثل " " ) ويتعتبرها قيمة غير فارغة فالكود الأبسط بدون Nz و Trim كاف إذا كان مطور النظم يريد أن تعتبر المسافات فارغة (مثل " " ) فاستخدام Trim و Nz يعطي ميزة إضافية Expand لاشك ان دالتين مهمتين جدا في بعض الاحيان ولكن سؤالي كان دور دالتين في إطار موضوع الحالي فقط على العموم ،اسطرك الجميلة منح رونق اضافي للموضوع و يسعدني مشاركتك القيمة. 1
Foksh قام بنشر الأحد at 23:49 قام بنشر الأحد at 23:49 الفراغ الذي دار الحديث حوله اذا كان مربع النص حقل نصي ، إما اذا كان حقل رقمي فلا حاجة لـ Trim باعتقادي 😁 ولا في حد عنده اعتراض هههههههه 1 1
ابو جودي قام بنشر الأحد at 23:51 قام بنشر الأحد at 23:51 انا وضعت الاجابة بشكل مفصل لتكون مرجعا شاملا وشرحا وافيا في 23/3/2025 at 23:35, ابو عارف said: ولكن سؤالي كان دور دالتين في إطار موضوع الحالي فقط Expand وردا على سؤال حضرتك بإختصار شديد جدا جدا إذا كانت البيانات غير متسقة أو تحتوي على إدخالات غير متوقعة مثل المسافات الزائده بدون داعى اما عن طريق الخطأ او بسبب تنفيذ اى عملية خطأ فدائما أحاول بقدر الإمكان عند تقديم أى حلول التكد من سد أى ثغرات تؤدى الى أخطاء مستقبليه ولن يتم اكتشافها فى الوقت الراهن في 23/3/2025 at 23:35, ابو عارف said: على العموم ،اسطرك الجميلة منح رونق اضافي للموضوع و يسعدني مشاركتك القيمة. Expand استاذى الجليل ومعلمى القدير طبعا كل كلماتى شكرى وتقدير لكم سوف تقف عاجزة وقاصرة أمامكم وأمام كل المجهود وكل العلم الذى تقدمونه وأمام ما تعلمناه وسوف نتعمله نحن كل طلاب العلم فى هذا الصرح الشامخ على اياديكم المباركة أنتم وباقى كل اساتذتى العظماء شكر الله لكم وأحسن اليكم كما تحسنون الينا وكل طلاب العلم وجزاكم الله خيـرا وكتبه لكم فى موازين اعمالكم ان شاء الله كلماتكم الطيبه وسام عزة جزاكم الله خيـرا ولكن هذا فضل الله تعالى اولا ثم فضلكم انتم فهذا حصاد و ثمار ما زرعتم وتزرعون وانا من يسعدنى ويشرفنى ان اشارك مع اساتذتى العظماء احبكم فى الله 1
jo_2010 قام بنشر الإثنين at 07:08 الكاتب قام بنشر الإثنين at 07:08 الخبراء الافاضل الاعزاء شكرا لكم ولابداعتكم ومساعدتكم فى حل كل مشكلة تواجهنى بطرق ابداعية مختلفة خالص الشكر لكم جميعا
ابو عارف قام بنشر الإثنين at 11:02 قام بنشر الإثنين at 11:02 في 23/3/2025 at 23:51, ابو جودي said: إذا كانت البيانات غير متسقة أو تحتوي على إدخالات غير متوقعة مثل المسافات الزائده بدون داعى اما عن طريق الخطأ او بسبب تنفيذ اى عملية خطأ Expand اخي الكريم و استاذنا الجليل @ابو جودي باختصار شديد ايضاً ، ضم دالتين (Isnull) و (="") يتحقق من جميع تلك الأخطاء و ما اظن ان يبق مجال لدوال اضافية هذا اولا و ثانيا نحن سلطنا ضوء كلها على شرط الثاني في السؤال و ما اذا اورد تلك الأخطاء في جقل xxx مثلا لان xxx برضو مش معصوم من الخطاء و لك منا الف تحايا. ملحوظة: بسبب عدم استطاعتي كتابة لغة عربية صحيحة ، قد تعذر علي وصولكم فهمي بسهولة و وصفكم بكلمات ما يناسبكم ايضا ارجو ان لا تفكروني بانني غير مهتم، والله وراء الفصد.
ابو جودي قام بنشر الإثنين at 12:27 قام بنشر الإثنين at 12:27 في 24/3/2025 at 11:02, ابو عارف said: ارجو ان لا تفكروني بانني غير مهتم Expand انتم احد اهم ركائز المنتدى واحد اعظم الاساتذة الذين يتعلم منهم كل طلاب العلم وانا أول هؤلاء الطلاب وفى مقدمتهم ولا نظن بكم الا كل الخيــــــر 1
ابو عارف قام بنشر الإثنين at 18:01 قام بنشر الإثنين at 18:01 في 24/3/2025 at 12:27, ابو جودي said: ولا نظن بكم الا كل الخيــــــر Expand شكرا على حسن ظنكم بارك الله فيكم ،بس اريد من حضرتكم خدمة الا و هي استعادة اتمام الإجابة لمكانها السابق و اكن لك من شاكرين.
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.