السلام عليكــم ورحمـة الله وبركاتــه ،،
مالفرق بين الجملتين التاليتين
if isnull(me.text1) then
if (me.text1) = "" then
ولكم الشكر
السلام عليكــم ورحمـة الله وبركاتــه ،،
مالفرق بين الجملتين التاليتين
if isnull(me.text1) then
if (me.text1) = "" then
ولكم الشكر
استفسار جميل.
بانتظار أحد الأساتذة ليوضح الفرق جيداً.
أظن -والله أعلم- أن الفرق يكون داخلياً في الذاكرة، وليس خارجياً، فلنضرب مثالاً بالفرق بين "" و vbNullString بهذا الموضوع الذي يوجد عندي في المفضلة ولم أقرأه بعد:
http://www.xtremevbtalk.com/showthread.php?t=26717
إذا فالفرق ليس واضحاً، ولكنه قد يكون داخلياً.
بالنسبة إلي، قرأت أن أفضل استعمال للتحقق من أن النص فارغ هو:
If Len(Text1.Text) = 0 Then
فقد قرأت أنه الأسرع، والله أعلم.
بانتظار من يعرف :)
هذه الجملة خاطئة :wacko:
وعليكم السلام ورحمة الله وبركاته ،،،
القيمة الافتراضية للأداة (Text.Text) هو ( " " ) ، ولا أدري هل هناك حالات تكون فيها قيمة الأداة (Null) لأن هذه القيمة غالبا ما تستخدم في قواعد البيانات للتحقق من وجود إدخال أم لا ...
ولا شك أن هناك فرق بين القيمتين ( " " ) وبين (Null) ، أرجو منك ضرب مثال تكون فيه قيمة الأداة تكست (Text.Text) = (Null) ... وتوضيح الهدف من طرح سؤالك .... بمعنى : ماذا تريد من سؤالك المطروح؟؟
السلام عليكم...
يوجد ثلاثة أنواع من البيانات يمكن أن تسبب اللخبطة: اللاشيء (NULL) و الفارغ (EMPTY) و النص الفارغ أو النص ذو الطول الصفري (Empty String أو Zero-Length String).
من البداية سنستبعد النص الفارغ ( المعبر عنه هكذا: "" ) لأنه نوع محدد هو String، و لأن المتغير من هذا النوع يحتوي على قيمة مقبولة برمجياً لأنه يمثل سلسلة رمزية (حروف و أرقام و رموز الكتابة الأخرى) و حتى إن كان فارغاً فإنه في الواقع يحتوي على رمز واحد هو رمز نهاية السلسلة، و هو الرمز رقم صفر في جدول رموز آسكي.
و بما أنه - كما قلنا - نوع محدد (String) و مقبول برمجياً مثله مثل Long و Integr و Single و غيرها فإنه لا يسبب مشاكل حتى و إن كان فارغاً.
و أي نوع من تلك الأنواع المحددة لا يمكننا أن نسند إليه القيمة NULL كما في المثال التالي:
الجملة الأخيرة تتسبب في خطأ لأن الخاصية Text من النوع String فلا تقبل القيمة NULL أيضاً.
القيمتان NULL و EMPTY خاصتان بالنوع Variant فقط و فقط.
القيمة NULL تعني أن المتغير لا يحتوي على قيمة فعلية أو مقبولة، و بالتالي لا يمكن تحويلها إلى أي نوع من أنواع البيانات الأخرى. يمكن أن يحتوي متغير من النوع Variant على NULL بإحدى طريقتين: إما نسند إليه القيمة NULL صراحةً (MyVar = NULL) أو أن نسند إليه تعبيراً تكون نتيجته NULL كأن يحتوي التعبير أصلاً على قيم NULL أو نسند إليه قيمة دالة قد تعيد NULL أو نسند إليه حقلاً فارغاً في قاعدة بيانات.
لننظر إلى المثال التالي:
جملة Dim Var تعلن عن متغير من النوع Variant (عندما لا نحدد النوع فإنه يكون تلقائياً Variant) و هي مكافئة لجملة Dim Var As Variant.
المتغيرات من النوع Variant تقبل القيمة NULL و هذا ما فعلناه في السطر الثاني. المشكلة تحدث في السطر الثالث. فالدالة MsgBox تحتاج إلى قيمة من النوع String أو قيمة يمكن تحويلها إلى String، لكننا ذكرنا سابقاً أن القيمة NULL لا يمكن تحويلها إلى أي نوع آخر، فيحدث الخطأ.
القيمة EMPTY أيضاً خاصة بالمتغيرات من النوع Variant لكنها أكثر مرونة. في VB فإن EMPTY تعني أنه لم يتم بعد إعطاء قيمة مبدئية للمتغير (Un-initialized) - و لا حتى القيمة NULL - لكن المتغير بهذا الشكل لا يتسبب في أخطاء، فإذا استعملناه ضمن تعبير String فإنه ببساطة يعتبر نصاً فارغاً (Empty String) و إذا استعملناه ضمن تعبير عددي فإن قيمته تعتبر 0 (صفراً). لكن بالمقابل لا يمكننا إسناد قيمة EMPTY لمتغير لأنه ببساطة لا يوجد نوع بيانات اسمه EMPTY فهذه الكلمة تستعمل فقط للدلالة على أن المتغير لم يُعطَ قيمة محددة بعد.
الرسالة التي ستظهر في الكود السابق هي "EMPTY" لأننا لم نعط قيمة مبدئية للمتغير.
أخيراً هناك المتغير العام (ضمن مكتبة VBA) و هو vbNullString و هو في الواقع مؤشر إلى قيمة NULL (فهو يختلف عن النص الفارغ) و عادةً لا نستعمله إلا مع دوال API التي تحتاج القيمة NULL في بعض بارامتراتها.
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
السلام عليكــم ورحمـة الله وبركاتــه ،،
شكرا لاجاباتكم
ولكن لتوضيح طرحي للسوؤل بسبب التالي
If IsNull(Me.Text1) Then
MsgBox " Pls Inter Plate No", vbCritical, "Data Entry"
Exit Sub
End If
هنا عندما اضغط save والحقل فارغ لاتوجد به قيمه لاينفذ هذا الشرط
ولكن عندما اجعل الكود بالطريقة التالية
If (Me.Text1) = "" Then
MsgBox " Pls Inter Plate No", vbCritical, "Data Entry"
Exit Sub
End If
فهنا ينفذ الشرط
وشكرا للاستاذ najy وضحت الصورة بارك الله فيك
ما شاء الله يا أستاذ ناجي، فعلاً شرح أكر من رائع.
إذا أمكن تحويله إلى قسم الدروس والمواضيع الهامة، فمثل هذه الإجابات يجب ألا تضيع في صفحات المنتدى.
شكراً لك :)
هذه الجملة خاطئة :wacko: