السلام عليكم ورحمة الله وبركاته
أخوتي الكرام لدي مثال مرفق فيه استعلام يقوم بجمع الاعداد التابعة لجهة معينة لكني لاحظت ان دالة الجمع فيه لا تجمع الأعداد السالبة مع الموجبة ..فهل من حل لذلك ؟
وشكراً لكل من يقدم يد العون
السلام عليكم ورحمة الله وبركاته
أخوتي الكرام لدي مثال مرفق فيه استعلام يقوم بجمع الاعداد التابعة لجهة معينة لكني لاحظت ان دالة الجمع فيه لا تجمع الأعداد السالبة مع الموجبة ..فهل من حل لذلك ؟
وشكراً لكل من يقدم يد العون
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
وعليكم السلام ورحمة الله وبركاته
أخي الكريم يبدو أن المشكلة كانت تكمن في الصف نفسه.. حيث أنني حذفت الصف الذي به [ثلاجة - المدينة - 5] وكتبته من جديد فتم الحساب بخصم [ثلاجة 1-] ليكون المجموع [4 ثلاجات]
اتمنى أن تكون حلت معك المشكلة
خالص تحياتي
شكراأ لك أخي عبدالرحمن على المساعدة وفعلاً المشكلة كما وصفتها انت لكنها مشكلة غريبة فلايوجد مايشير الى التسبب بهذا الخلل ..اتمنى ان يفيدنا احد الأخوة بالسبب لتلافي حدوث مثل هذه المشاكل مستقبلاً .. تحياتي
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
أخي جعفر أشكرك جزيل الشكر على المساعدة ..المشكلة تم حلها وهي غريبة نوعا ما .. المشكلة كانت في خانة الملاحظات فعد احتوائها على قيمة خالية في الجدول فإن عملية الجمع في الاستعلام تستثني الارقام التي لديها قيم فارغة في خانة الملاحظات فكان لابد من إزالة خانة الملاحظات من الاستعلام لتجنب تلك المشكلة
تم تعديل هذه المشاركة بواسطة SANDANET في 11 أكتوبر 2014 في 18:58
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
نعم اعرف هذا الشئ :)
لهذا لوسمحت ، استخدم برنامجك الاصلي الذي فيه المشكلة ، ثم اعمل الاستعلام اللي ارفقته لك ، وستظهر لك كل النتائج :)
انا سأوضح لك السبب ، فقط عندما تجرب الاستعلام اعلاه على قاعدة بياناتك التي كان بها هذه المشكلة :)
هذا اذا كنت لاتزال تريد تعرف السبب :)
جعفر
تم تعديل هذه المشاركة بواسطة jjafferr في 11 أكتوبر 2014 في 20:52
أستاذي العزيز جعفر أحييك على هذا المجهود الرائع في متابعة المواضيع المطروحة ومساعدتك لنا .. اسألك الله ان يوفقك دنيا وآخرة وان يجعل اعمالك هذه كلها في ميزان حسناتك .. أخي الكريم جعفر يؤسفني انني لم ارفق البرنامج الاصلي الذي كنت اعمل عليه لأنه خاص بجهة معينة تملك حقوقه وقد تم تسليمه .. ولكني جربت الاستعلام الذي ارفقته لي وكان لدي سؤال على الامر val ماهي وظيفته بالتحديد؟
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
حياك الله أخي :)
آسف ما كان قصدي ان ترفق برنامجك ، ولكن كان قصدي انك تجرب الاستعلام اللي انا عملته ، وتجربه في المرفق في مشاركتك الاولى (اللي ما كان الرقم السالب ينجمع فيها) :)
1. الحقل Amounts
نوع الحقل Amounts هو نص ، فعادة لا تستطيع جمع قيمة النص ، لذا فاننا نخبر البرنامج ان يحول لنا النص الى قيمة Val معناها Value ، ومن ثم تكون العملية الحسابية صحيحة :)
مع ان المجموع عندك كان صحيح بدون Val ، ولكن قد تواجه مشاكل في اماكن اخرى في الكود :)
2. الحقل notes
أ- الحقول في قواعد البيانات قد تكون غير ممسوسة (اي لم يتم الكتابة فيها مسبقا) ، وتسمى Null ،
ب- وحقول اخرى تكون قد كتبت فيها ، وقد تكون مسحت البيانات منها (هذا الذي كان حاصل في قيمة notes للرقم السالب) ، وتسمى Empty ،
ج- بالنسبة لأكسس ، التعامل مع هذين النوعين يختلف ، ويعاملهما الاكسس على انهما قيمتان مختلفتان (وهذه كانت المشكلة في عدم جمع الاكسس بياناتك ، يعني كأنّ عنك قيم مختلفة ، لهذا ما كان يجمع قيم notes في مجموعة واحدة) ،
د- بسبب ج ، ترى في الكثير من البرامج ترى ان المبرمج لا يعرف اذا الحقل Null او Empty ، فانه يستعمل الكود التالي:
if IsNull([notes])=true OR [notes]="" then
وبدل هذين الشرطين ، انا دائما استعمل شرط واحد يدمج الشرطين:
if Len([notes] & "")=0 then
هـ - السبب ان الاستعلام اللي انا وضعته لك يشتغل ، هذا لآني استعملت الامر Nz ، والذي معناه انه اذا كانت الخانة Null ، فحول قيمتها الى اي قيمة نريد (وانا في هذه الحاله حولتها الى "" اي Empty) ، لذلك ، فاصبحت قيم جميع خانات notes الى Empty ، فاصبحت متشابهه ، فقام الاستعلام بجمعها :) ،
الامر Nz وهو خاص بالاكسس فقط ، عادة نستعمله هكذا:
Nz([notes], القيمة التي نريدها بدل Null) مثلا: تحويل القيم Null الى صفر: Nz([notes], 0) تحويل القيم Null الى لا شئ ، اي Empty: Nz([notes], "") تحويل القيم Null الى النص جعفر: Nz([notes], "جعفر")
للعلم :)
جعفر
ماشاء الله عليك أخي جعفر على هذا الشرح الوافي وعلى تلك المعلومات الأكثر من رائعة والتي قد تغيب على الكثير من الأخوة المبرمجين .. سأحاول ان اطبق ماتفضلت به بنسخة معدلة الى الجهة التي سلمت لها البرنامج .. ولك مني جزيل الشكر .. تحياتي
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
حياك الله :)
آه نسيت شئ آخر لأختم به هذا الموضوع :)
ضع المعادلة التالية في نفس الاستعلام اعلاه ، ولاحظ النتيجة:
Len([notes])
هذه المعادلة تحسب لك عدد الحروف الموجودة في الحقل notes ،
فلاحظ انه اذا كان الحقل Empty ، فان عدد الحروف فيه تختلف عن عدد الحروف للحقل الـ Null :)
جعفر
شكرا لك أخي جعفر على الأمر Len فقط اصبحت اعتمد عليه كثيرا :D وفائدته كبيرة لكن يستخدم عبارة if لفحص قيمة خلية فيما اذا كانت فارغة ام لا ..تحياتي لك
ما من كاتبٍ إلا سيفنى ... ويبقي الدهر ما كتبت يداه
فلا تكتب بخطك غير شيءٍ ... يسرك في القيامة أن تراه
مواضيع مفيدة
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…