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

كيفية البحث باستخدام حقل نوعه LookUp ?

مغلق
بدأه بن سعد في 30 مارس 2007 · 5 رد · 915 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

حياكم الله.. إخوتي بالمنتدى..

عندي سؤال .. لو سمحتم:

عملت قاعدة بيانات بالأكسس احتوت على جدولين ( Invoice و InvoiceDetail)..

طبعاً ربطت كِلا الجدولين بـADOQuery ..

أضفت حقل نوعه LookUp للـ AdoQuery2 الخاص بـ InvoiceDetail وهو حقل SaleDate بحيث يأخذ بياناته من جدول Invoice ..

عندما أقوم بإجراء استعلام SQL لإخراج الأصناف المباعة -الموجودة ضمن الجدول InvoiceDetail - خلال فترة باستخدام الحقل SaleDateذو النوع LookUp ..

يظهر الاعتراض التالي: (قيمة افتراضية SaleDate لا توجد للمعلمة)..!! بالتالي لا أستطيع طباعة التقرير المطلوب؟

ما العمل للوصول إلى ما أريد؟ .. وشكراً

#2

بدلأ من استخدام الحقل المعرف Lookup قم باستخدام الحقل الرئيسي في الجدول الذي استخدمته في عملية الربط Lookup.

#3

أولاً أعتذر لمشرف القسم على الخطأ الذي وقع بغير عمد، وذلك لقلة معرفتي بكيفية إدراج الردود..

ثانيا.. بخصوص إجابة السؤال السابق:

أرجو زيادة توضيح الإجابة، لأنه لا يمكن استخدام المفتاح الرئيسي (والذي هو InvoiceNo) في تحديد الفترة الزمنية كما في الكود التالي:

SQL.Add('select * from InvoiceDetail WHERE SaleDate Between #'+DateToStr(D1.Date)+'# and #'+DateToStr( D2.Date)+'# order by SaleDate'

;(

ولكم جزيل الشكر

#4

عندما قمت بعمل Lookup قمت بربط جدولين أحدهما الأساسي الذي ستتعامل معه وليكن X والجدول الآخر وليكن Y تستخدمه لتعرض بيانات نصية منه لتوضيح حقل

في الجدول X.

لنفرض X يمثل بيانات العميل و Y يمثل المدن. X يحوي حقل CityNo والجدول Y يحوي CityNo و CityName عند إجراء البحث فإنك تستخدم CityNo

من جدول X وليس حقل ال Lookup الجديد الذي قمت بإنشاءه.

أرجو أن تكون الفكرة واضحة.

#5

'Select * From InvoiceDetail , Invoice

WHERE InvoiceDetail.InvoiceNo = Invoice.InvoiceNo

And Invoice.SaleDate Between #' +DateToStr(D1.Date)+'# and #'+DateToStr( D2.Date)+'# order by Invoice.SaleDate'

or

'Select * From Invoice INNER JOIN InvoiceDetail ON InvoiceDetail.InvoiceNo = Invoice.InvoiceNo WHERE Invoice.SaleDate Between #' +DateToStr(D1.Date)+'# and #'+DateToStr( D2.Date)+'# order by Invoice.SaleDate'

#6

السلام عليكم

أخي .. mike_mousa

الجملة السابقة أدت المطلوب .. مشكور جداً ...... وإلى الأخ bam كمــ ــ ــ ــ ـــان.

..

ولكن عم يظهر خطأ عند إضافة الجملة السابقة في كودي التالي:

InvoiceDetail.close;
InvoiceDetail.SQL.Clear;
InvoiceDetail.SQL.Add('......جملة sql   '  );
InvoiceDetail.Open;

يظهر الخطأ عند تنفيذ آخر سطر

والخطأ مفاده: " InvoiceDetail:Field ' InvoiceNo' not found "؟

-waf

والسلام عليكم

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

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