منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كود علاقة بين جدولين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم...

من المفترض أن تكون الإجابات واضحة و كافية.

عموماً... استعمال الحلقات في مثل هذا الأمر غير عملي و خاصة إذا كان عدد السجلات بالمءات أو بالآلاف! كما أن عملية إضافة 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)

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

الصفحات : 1 2