22-09-13, 09:24 PM
(آخر تعديل لهذه المشاركة : 22-09-13, 09:26 PM {2} بواسطة ناجي إبراهيم.)
السلام عليكم...
من المفترض أن تكون الإجابات واضحة و كافية.
عموماً... استعمال الحلقات في مثل هذا الأمر غير عملي و خاصة إذا كان عدد السجلات بالمءات أو بالآلاف! كما أن عملية إضافة 1 إلى العداد كلما وجد اسم أو رقم الزبون ستعطي نتائج خطأ لأنه لو فرضنا أن لدينا 10 أصناف بينما هناك زبون اشترى صنف واحد 10 مرات فسيظهر في النتائج مع أنه لم يشتر الأصناف العشرة (حسب فهمي).
إذا "اعتبرنا" أن جدول الزبائن (Customers) يحتوي على الحقل CustID لرقم الزبون و الحقل CustName لاسم الزبون، و أن جدول الأصناف (Items) يحتوي على الحقل ItemID لرقم الصنف، و أن جدول المبيعات (Sales) يحتوي على الحقل CustID و الحقل ItemID لربط الأصناف بالزبائن. فإن الحل كالتالي:
1. في قاعدة البيانات أنشئ استعلاماً (Query) كالتالي:
و احفظ بأي اسم (مثلاً: Q_NR_Sales كما في المثال التالي).
2. في البرنامج استعمل جملة SELECT التالية مع الخاصية RecordSource للمكون ADODC أو عند فتح ADODB.Recordset:
نرجو الاستفادة و السلام.
من المفترض أن تكون الإجابات واضحة و كافية.
عموماً... استعمال الحلقات في مثل هذا الأمر غير عملي و خاصة إذا كان عدد السجلات بالمءات أو بالآلاف! كما أن عملية إضافة 1 إلى العداد كلما وجد اسم أو رقم الزبون ستعطي نتائج خطأ لأنه لو فرضنا أن لدينا 10 أصناف بينما هناك زبون اشترى صنف واحد 10 مرات فسيظهر في النتائج مع أنه لم يشتر الأصناف العشرة (حسب فهمي).
إذا "اعتبرنا" أن جدول الزبائن (Customers) يحتوي على الحقل CustID لرقم الزبون و الحقل CustName لاسم الزبون، و أن جدول الأصناف (Items) يحتوي على الحقل ItemID لرقم الصنف، و أن جدول المبيعات (Sales) يحتوي على الحقل CustID و الحقل ItemID لربط الأصناف بالزبائن. فإن الحل كالتالي:
1. في قاعدة البيانات أنشئ استعلاماً (Query) كالتالي:
كود :
SELECT DISTINCT CustID, ItemID
FROM Salesو احفظ بأي اسم (مثلاً: Q_NR_Sales كما في المثال التالي).
2. في البرنامج استعمل جملة SELECT التالية مع الخاصية RecordSource للمكون ADODC أو عند فتح ADODB.Recordset:
كود :
SELECT C.CustID, C.CustName
FROM Customers C
WHERE (SELECT COUNT(*) AS SalesCount FROM Q_NR_Sales QS WHERE (QS.CustID = C.CustID)) = (SELECT COUNT(*) AS ItemCount FROM Items I)نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
