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 منذ ساعه, ابو جودي said: وطبعا بعد إذنه اي كلام ده!!! اباجودي يستأذن!! مش معول🤔 تفضل عزيزي @ابو جودي حياك الله إذننا دائما معك سؤال خطر ببالي حول دالتين Nz و Trim ولكن دالتين هذا يفيدنا في حالة استخدام قيمة متغير او عنصر ،Trim لإزالة مسافات يمين و يسار قيمة و Nz لإرجا فراغ عند عدم وجود قيمة ، ولكن هنا مطلوب التأكد ان كان حقل فارغ ام لا ، اذا فارغ خلاص قد تم ايفاء شرط و الا الشرط لايفي سواء بمسافات يمين و يسار أو بدونهم هذا حسب علمي طبعا و لو استاذنا كشف فيه ميزة اضافية ممكن يكرمنا بمثال بسيط الفرق بين استخدام تلك دالتين من عدمه. 1 1
ابو جودي قام بنشر الأحد at 21:38 قام بنشر الأحد at 21:38 1 ساعه مضت, ابو عارف said: اي كلام ده!!! اباجودي يستأذن!! مش معول🤔 طبعا مما لاشك فيه لابد للطالب من الاستئذان توقيرا واجلا للمعلم القدير الجليل 1 ساعه مضت, ابو عارف said: سؤال خطر ببالي حول دالتين Nz و Trim ولكن دالتين هذا يفيدنا في حالة استخدام قيمة متغير او عنصر ،Trim لإزالة مسافات يمين و يسار قيمة و Nz لإرجا فراغ عند عدم وجود قيمة ، ولكن هنا مطلوب التأكد ان كان حقل فارغ ام لا ، اذا فارغ خلاص قد تم ايفاء شرط و الا الشرط لايفي سواء بمسافات يمين و يسار أو بدونهم هذا حسب علمي طبعا و لو استاذنا كشف فيه ميزة اضافية ممكن يكرمنا بمثال بسيط الفرق بين استخدام تلك دالتين من عدمه. حاسس انى اتدبست - او غلطت فى شئ - أو يتم اختبارى وأنا أقلق من هذه الموافق جدا ولكن سوف ادلى بدلوي فإن اخطأت فهذا مني ومن سوء فهمي وتقديري أنا و وقتها تصحون لي خطئي وجزاكم الله عني كل خير وإن أصبت فلقد تعلمت على ايديكم فأنتم أحد الأساتذة العظماء الذين أدين لهم بالفضل بعد رب العزة سبحانه وتعالي سؤالك جدا ممتاز يا أستاذي ويفتح مجالا لفهم أعمق لدالتي 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 1 ساعه مضت, ابو جودي said: الخلاصة: إذا كان مطور النظم لا يهتم بالمسافات (مثل " " ) ويتعتبرها قيمة غير فارغة فالكود الأبسط بدون Nz و Trim كاف إذا كان مطور النظم يريد أن تعتبر المسافات فارغة (مثل " " ) فاستخدام Trim و Nz يعطي ميزة إضافية لاشك ان دالتين مهمتين جدا في بعض الاحيان ولكن سؤالي كان دور دالتين في إطار موضوع الحالي فقط على العموم ،اسطرك الجميلة منح رونق اضافي للموضوع و يسعدني مشاركتك القيمة. 1
Foksh قام بنشر الأحد at 23:49 قام بنشر الأحد at 23:49 الفراغ الذي دار الحديث حوله اذا كان مربع النص حقل نصي ، إما اذا كان حقل رقمي فلا حاجة لـ Trim باعتقادي 😁 ولا في حد عنده اعتراض هههههههه 1 1
ابو جودي قام بنشر الأحد at 23:51 قام بنشر الأحد at 23:51 انا وضعت الاجابة بشكل مفصل لتكون مرجعا شاملا وشرحا وافيا 6 دقائق مضت, ابو عارف said: ولكن سؤالي كان دور دالتين في إطار موضوع الحالي فقط وردا على سؤال حضرتك بإختصار شديد جدا جدا إذا كانت البيانات غير متسقة أو تحتوي على إدخالات غير متوقعة مثل المسافات الزائده بدون داعى اما عن طريق الخطأ او بسبب تنفيذ اى عملية خطأ فدائما أحاول بقدر الإمكان عند تقديم أى حلول التكد من سد أى ثغرات تؤدى الى أخطاء مستقبليه ولن يتم اكتشافها فى الوقت الراهن 9 دقائق مضت, ابو عارف said: على العموم ،اسطرك الجميلة منح رونق اضافي للموضوع و يسعدني مشاركتك القيمة. استاذى الجليل ومعلمى القدير طبعا كل كلماتى شكرى وتقدير لكم سوف تقف عاجزة وقاصرة أمامكم وأمام كل المجهود وكل العلم الذى تقدمونه وأمام ما تعلمناه وسوف نتعمله نحن كل طلاب العلم فى هذا الصرح الشامخ على اياديكم المباركة أنتم وباقى كل اساتذتى العظماء شكر الله لكم وأحسن اليكم كما تحسنون الينا وكل طلاب العلم وجزاكم الله خيـرا وكتبه لكم فى موازين اعمالكم ان شاء الله كلماتكم الطيبه وسام عزة جزاكم الله خيـرا ولكن هذا فضل الله تعالى اولا ثم فضلكم انتم فهذا حصاد و ثمار ما زرعتم وتزرعون وانا من يسعدنى ويشرفنى ان اشارك مع اساتذتى العظماء احبكم فى الله 1
jo_2010 قام بنشر الإثنين at 07:08 الكاتب قام بنشر الإثنين at 07:08 الخبراء الافاضل الاعزاء شكرا لكم ولابداعتكم ومساعدتكم فى حل كل مشكلة تواجهنى بطرق ابداعية مختلفة خالص الشكر لكم جميعا
ابو عارف قام بنشر الإثنين at 11:02 قام بنشر الإثنين at 11:02 10 ساعات مضت, ابو جودي said: إذا كانت البيانات غير متسقة أو تحتوي على إدخالات غير متوقعة مثل المسافات الزائده بدون داعى اما عن طريق الخطأ او بسبب تنفيذ اى عملية خطأ اخي الكريم و استاذنا الجليل @ابو جودي باختصار شديد ايضاً ، ضم دالتين (Isnull) و (="") يتحقق من جميع تلك الأخطاء و ما اظن ان يبق مجال لدوال اضافية هذا اولا و ثانيا نحن سلطنا ضوء كلها على شرط الثاني في السؤال و ما اذا اورد تلك الأخطاء في جقل xxx مثلا لان xxx برضو مش معصوم من الخطاء و لك منا الف تحايا. ملحوظة: بسبب عدم استطاعتي كتابة لغة عربية صحيحة ، قد تعذر علي وصولكم فهمي بسهولة و وصفكم بكلمات ما يناسبكم ايضا ارجو ان لا تفكروني بانني غير مهتم، والله وراء الفصد.
ابو جودي قام بنشر الإثنين at 12:27 قام بنشر الإثنين at 12:27 منذ ساعه, ابو عارف said: ارجو ان لا تفكروني بانني غير مهتم انتم احد اهم ركائز المنتدى واحد اعظم الاساتذة الذين يتعلم منهم كل طلاب العلم وانا أول هؤلاء الطلاب وفى مقدمتهم ولا نظن بكم الا كل الخيــــــر 1
ابو عارف قام بنشر الإثنين at 18:01 قام بنشر الإثنين at 18:01 5 ساعات مضت, ابو جودي said: ولا نظن بكم الا كل الخيــــــر شكرا على حسن ظنكم بارك الله فيكم ،بس اريد من حضرتكم خدمة الا و هي استعادة اتمام الإجابة لمكانها السابق و اكن لك من شاكرين.
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.