سؤال في الفلترة والبحث
#1
السلام عليكم إخواني
الإشكال:
لدي جدولين مربوطين الجدول الأولStudent والجدول الثاني classe
أضفت في الجدول الأولStudent
new field باسم أعمدة من الجدول الثاني classe وهي Class_Name

الإشكال الآن: وهو عند البحث والفلترة باستعمال ComboBox في الجدول الأولStudent بالإعتماد عن العمود المضاف فيه Class_Name والذي يأخذ قيمه من جدول classe لأنه مربوط معه.
يخرج الرسالة التالية:
impossible de trouver l'objet dans la collection correspondant au nom

الكود المستعمل:
procedure TWetud.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Text <> '' then
begin
damo.Student.Filter:= 'Class_Name LIKE '+ QuotedStr (ComboBox1.Text+'*');
damo.Student.Filtered:= true;
end
else
damo.Student.Filtered:= false;
end;

**** من لديه الحل ينورنا مشكورا مأجورا ومن لديه فكره أخرى أو كود آخر ينورنا
الرد
#2
لو قمت بعمل المثال البسيط ووضعه سوف يكون من الاسهل فهم ما هو موجود لديك ومحاولة معرفة الخطا من جانبا ومساعدتك

خاصة ان الخطأ بالفرنسي عندما ترجمتها لم تعطيني خطأ معروف من المتعارف عليه من اخطاء دلفي الانجليزي
الرد
#3
ممكن استخدام المكون DBLookupcombobox افضل
الرد
#4
أستعمل العلاقة Master-Detail Relationship، بدون كتابة و لا سطر برمجي واحد، سيت فلترة جدول Student حسب Class_Name من جدول Class.

لإنشاء العلاقة Master-Detail Relationship:
-حدد الـ Dataset الخاص بالجدول التفصيلي Detail (جدول Student).
-في خصائص الـ Dataset، ابحث عن خاصية MasterSource.
-اربط هذه الخاصية بالـ Dataset الخاص بالجدول الرئيسي (جدول Class).
-حدد حقل الربط في كلا الـ Dataset (مثلاً: حقل Class_Name أو Class_ID المشترك بين الجدولين).


الملفات المرفقة
.rar   Master_Detail.rar (الحجم : 151.32 ك ب / التحميلات : 16)
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم