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

دالة IIF

مغلق
بدأه YasserSayed2003 في 23 يناير 2005 · 1 رد · 742 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أولا تقبل الله منا و منكم

اقوم بعمل برنامج للمبيعات و قد واجهتني احد المشاكل

شرح قاعدة البيانات

عندي خمس جداول

جدول القطاعات

جدول المناطق

جدول الأحياء

جدول العملاء

جدول نوع العميل

يرتبط جدول القطاعات بجدول المناطق

يرتبط جدول المناطق بجدول الأحياء

يرتبط جدول الأحياء بجدول العملاء

يرتبط جدول أنواع العملاء بجدول العملاء

المشكلة

أريد أن اقوم بعمل استعلام يوضح بيانات العميل من جدول العملاء و نوعة من جدول نوع العميل و ما هو القطاع التابع إلية و المنطقة و الحي

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

عند عمل الاستعلام

1 - في حالة أن حقل النوع به قيمة فإنة يحضر لي بيانات العميل

2- أما في حالة أن حقل النوع ليس به قيمة فإن نتيجة الاستعلام صفر

قمت بعمل استعلام يعتمد علي دالة IIF و بالفعل نجحت التجربة إلا في جزء صغير

انة في حالة وجود قيمة يحضرها و لكن في حالة عدم وجودها تصبح قيمة الحقل #Error

جملة الاستعلام

SELECT TBL_Customers.CustNum, TBL_Customers.Name AS CustName, TBL_Customers.Manager, TBL_Customers.Address, TBL_Customers.Tel, TBL_Customers.Fax, TBL_Customers.Mobile, TBL_Customers.Email, TBL_Customers.WebSite, TBL_Customers.CreditLimited, TBL_Customers.WorksDays, TBL_Customers.VisitDays, TBL_Customers.AccountNumber, TBL_Customers.CreditPeriod, TBL_Customers.DeptPeriod, TBL_Customers.Bank, TBL_Customers.BankBranch, TBL_Customers.BankAddress, TBL_Customers.Discount, IIf(TBL_Customers.Delar,"تاجر",IIf(TBL_Customers.Member,"عضو","مستهلك عادي")) AS Delar, IIf(TBL_Customers.Bonus,"له بونص","ليس له بونص") AS Bonus, TBL_Delegate.Name AS DelegateName, TBL_Sectors.DES AS SectorDes, TBL_Area.Area_Des, TBL_District.District_Des, TBL_Customers.CustCategory,

 iif(val(TBL_Customers.Type_ID<>0),(SELECT TBL_CustType.Type_Des FROM TBL_CustType WHERE (((TBL_CustType.Type_ID)=1 )) GROUP BY TBL_CustType.Type_Des;),"" ) AS CustType

FROM TBL_Sectors INNER JOIN ((TBL_Area INNER JOIN TBL_District ON TBL_Area.Area_id=TBL_District.Area_ID) INNER JOIN (TBL_Delegate INNER JOIN TBL_Customers ON TBL_Delegate.ID=TBL_Customers.Delegate_ID) ON TBL_District.District_ID=TBL_Customers.District_ID) ON TBL_Sectors.ID=TBL_Area.Sector_id;

فأين الجزء الخطأ في هذه الجملة

 iif(val(TBL_Customers.Type_ID<>0),(SELECT TBL_CustType.Type_Des FROM TBL_CustType WHERE (((TBL_CustType.Type_ID)=1 )) GROUP BY TBL_CustType.Type_Des;),"" ) AS CustType

تم تعديل هذه المشاركة بواسطة YasserSayed2003 في 23 يناير 2005 في 16:21

#2

الحمد لله

وجدت الحل :) :) :)

IIf(TBL_Customers.Type_ID Is Not Null,(SELECT TBL_CustType.Type_Des FROM TBL_CustType WHERE TBL_CustType.Type_ID=TBL_Customers.Type_ID  GROUP BY TBL_CustType.Type_Des;),"") AS CustType

الجملة كاملة

SELECT TBL_Customers.CustNum, TBL_Customers.Name AS CustName, TBL_Customers.Manager, TBL_Customers.Address, TBL_Customers.Tel, TBL_Customers.Fax, TBL_Customers.Mobile, TBL_Customers.Email, TBL_Customers.WebSite, TBL_Customers.CreditLimited, TBL_Customers.WorksDays, TBL_Customers.VisitDays, TBL_Customers.AccountNumber, TBL_Customers.CreditPeriod, TBL_Customers.DeptPeriod, TBL_Customers.Bank, TBL_Customers.BankBranch, TBL_Customers.BankAddress, TBL_Customers.Discount, IIf(TBL_Customers.Delar,"تاجر",IIf(TBL_Customers.Member,"عضو","مستهلك عادي")) AS Delar, IIf(TBL_Customers.Bonus,"له بونص","ليس له بونص") AS Bonus, TBL_Delegate.Name AS DelegateName, TBL_Sectors.DES AS SectorDes, TBL_Area.Area_Des, TBL_District.District_Des, TBL_Customers.CustCategory,

IIf(TBL_Customers.Type_ID Is Not Null,(SELECT TBL_CustType.Type_Des FROM TBL_CustType WHERE TBL_CustType.Type_ID=TBL_Customers.Type_ID  GROUP BY TBL_CustType.Type_Des;),"") AS CustType

FROM TBL_Sectors INNER JOIN ((TBL_Area INNER JOIN TBL_District ON TBL_Area.Area_id=TBL_District.Area_ID) INNER JOIN (TBL_Delegate INNER JOIN TBL_Customers ON TBL_Delegate.ID=TBL_Customers.Delegate_ID) ON TBL_District.District_ID=TBL_Customers.District_ID) ON TBL_Sectors.ID=TBL_Area.Sector_id;

هذا الموضوع مغلق.

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