كيف اقوم بفلترة مزدوجة في قواعد البيانات
#1
السلام عليكم

أود أن أعمل فلترة مزدوجة لجدول معين

مثلاً

PHP كود :
procedure TForm1.spSkinEdit5Change(Sender: TObject);
begin
if spSkinEdit5.Text <>'' then
begin
ADOTable7
.Filter := 'Nom like ' + quotedstr('*'+ spSkinEdit5.Text +'*');
ADOTable7.Filtered :=true;
end else
ADOTable7.Filtered :=false;
end; 
هذا الإجراء خاص بفلترة الجدول حسب Nom .. أود بعد هذه الفلترة إضافة فلترة جديدة مثلاً

PHP كود :
procedure TForm1.spSkinEdit6Change(Sender: TObject);
begin
if spSkinEdit6.Text <>'' then
begin
ADOTable7
.Filter := 'Prénom like ' + quotedstr('*'+ spSkinEdit6.Text +'*');
ADOTable7.Filtered :=true;
end else
ADOTable7.Filtered :=false;
end; 

أود بقاء الأولى يعني فلترة الجدول الجديد حسب Prénom

لإني لما وضعت فلترة جديدة الأولى تلغى و يتم إعتماد الثانية فقط !
الرد
#2
و عليكم السلام و رحمة الله
حاول باستعمال Query أخي

كود :
MyQuery.Filtered := False; MyQuery.Filter:= 'F_MONCHPS1=''DATA1'' and F_MONCHPS1=''DATA2'' '; MyQuery.Filtered := True;

أو
كود :
var f : string; val1, val2 : string; begin val1 := Edit1.Text; val2 := Table1.AsString; f := 'DATA1=' + val1 + 'and ' + 'DATA2='+ val2 + '''; Table1.Filter := f; Table1.Filtered := True; end;
الرد
#3
أشكرك على الرد أخي .. لكني لا أعرف إستعمال Query

أنا أستعمل ADO للإتصال بقاعدة بيانات أكسس .. ممكن تشرحلي أكثر جزاك الله خيراً
الرد
#4
السلام عليكم

هل جربت حل الأخ paix144 ؟

مثال (حال كلا Edit تحملان قيم)
كود :
procedure TForm1.spSkinEdit5Change(Sender: TObject); begin if (spSkinEdit5.Text <>'') and (spSkinEdit6.Text <>'') then begin ADOTable7.Filter := 'Nom like ' + quotedstr('*'+ spSkinEdit5.Text +'*')+' [COLOR=Red]and [/COLOR]'+'Prénom like ' + quotedstr('*'+ spSkinEdit6.Text +'*')'; ADOTable7.Filtered :=true; end else ADOTable7.Filtered :=false; end;
إقتباس :لكني لا أعرف إستعمال Query
قبل ذلك تعلم الـ SQL توجد مواضيع حولها في المنتدى ، إبحث Smile

بالتوفيق
الرد
#5
الله يبارك فيكم ..

جاري التجريب إخواني
الرد
#6
أخي Lam.Abdeldjalil .. الكود خطأ هل جربته من قبل ؟
الرد
#7
خطأ فني Smile لا أدري من أين أتت -> '

كود :
ADOTable7.Filter := 'Nom like ' + quotedstr('*'+ spSkinEdit5.Text +'*')+' and '+'Prénom like ' + quotedstr('*'+ spSkinEdit6.Text +'*');
بالتوفيق
الرد


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


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