الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطأ بجملة Sql

بدأه mometo في 4 مايو 2009 · 3 رد · 589 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

اخواني اخواتي تواجهني مشكلة في جملة SQL ببرنامجي الذي اعتمد فيه علي الاتصال بقاعدة بيانات اكسيس مستخدما فية ADO كالتالي

هذا الكود استخدمة لإيجاد مجموع حقل معين بمعلومية رقم الحساب والتاريخ وذلك بهذه الجملة

If rsBP.State = adStateOpen Then rsBP.Close
Set rsBP = db.Execute("SELECT Sum(tbTransactions.T_Dr), Sum(tbTransactions.T_Cr) FROM tbTransactions where T_AccNo = '" & Text1.Text & "' and T_Date < '" & Text2.Text & "'")

واقوم بتخصيص القيمة المرجعة من هذه الجملة لمربعين نص بالكود التالي

text3.Text = rsBP(0)
text4.Text = rsBP(1)

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

عندها تظهر هذه الرسالة

Invalid use of null

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

ارجو منكم المساعدة ولكم التحية

#2

وعليكم السلام ورحمة الله وبركاته ،،،

جرب هذا الكود :-

if IsNull(rsBp(0)) then
text3.Text = 0
Else
text3.text = rsBP(0)
End if
if IsNull(rsBP(1)) then
text4.text = 0
Else
text4.Text = rsBP(1)
End If

أتمنى لك التوفيق ....

#3

السلام عليكم...

عندما لا يحتوي أحد الحقلين على قيمة فإن قيمته هي NULL و هي قيمة لا يمكن تحويلها إلى String فتظهر تلك الرسالة.

و كما بيّن أخونا "maajed555" فإننا نحتاج إلى اختبار قيمة الحقل، فإن كانت NULL نضع 0 (أو لا شيء أو أي قيمة تريدها) في مربع النص المقابل.

و يمكن اختصار جملة If باستعمال الدالة IIF كالتالي:

  1. Text3.Text = IIF(IsNull(rsBP(0)), "0", rsBP(0))
  2. Text4.Text = IIF(IsNull(rsBP(1)), "0", rsBP(1))
  3.  

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4

أستاذي الكريم najy_zl

أنا أول مستفيد من الأسلوب المختصر الذي تفضلت به ووضعته هنا ، واعترافا مني لك بالفضل ... أحببت أن أسجل ذلك :)

شكرا لك أخي الكريم ....

مواضيع مشابهة