المشاركات : 71
المواضيع 17
:
: 0
الإنتساب : Dec 2013
السلام عليكم
لدي قاعدة بيانات فيها عدة جداول من بينها جدول سميته bien و في الجدول هذا أود البحث بواسطة رقم bien و الذي سميته NumBien
لقد جربت البحث بواسطة الفلترة و اليكم الكود و نتجية خاطئة اي لا يعمل
كود :
IF sedit1.GetTextLen<> 0 then
begin
dm.ADOQuery1.Filter:='NumBien='''+sEdit1.Text+'*''';
dm.ADOQuery1.Filtered:=true;
end
else
begin
dm.ADOQuery1.Filtered:=false;
end;
و لقد جربت البحث بطريقة ثانية أخرى و تظهر لي رسائل خطأ عديدة و اليكم الكود الثاني :
كود :
dm.ADOQuery1.Close ;
dm.ADOQuery1.Parameters.ParamByName('c').value:=sEdit1.text;
dm.ADOQuery1.Open;
if dm.ADOQuery1.RecordCount=0 then showmessage('Ne Exist Pas') else showmessage ('Exist') ;
و في قسم الخصائص و بالضبط في SQL وضعت الامر التالي :
كود :
select*from Tbien where NumBien.code=:c
لم أفهم مصدر الخطأ ، و جزاكم الله خيرا لما تقدمونه خدمة للأعضاء .
المشاركات : 71
المواضيع 17
:
: 0
الإنتساب : Dec 2013
الحمد لله لقد وجدت الحل بعد جهد هههه و هذا لحل الصحيح : select*from Bien where Bien.NumBien=:c
بقي لي عائق : كيف اقوم البحث بخاصية الفلترة ؟ اي مثل الخاصية التي في الجوال مجرد اكتب الرقم الاول تظهر لي بقية الارقام التي تشابهه ؟
و جزاكم الله خيرا
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
السلام عليكم و رحمة الله تعالى و بركاته
أخي في الحدث on change الخاص ب edit ضع كود الفلترة
dm.ADOQuery1.Filter:='NumBien='''+sEdit1.Text+'*''';
dm.ADOQuery1.Filtered:=true
بالتوفيق
المشاركات : 71
المواضيع 17
:
: 0
الإنتساب : Dec 2013
بارك الله فيك يا أستاذي الفاضل على التجاوب
و قد جربت الكود و للأسف لم يعمل :confused:
أتمنى ان نجد الحل و نفع الله بك اخاه ،،
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
أخي تأكد من نوع الحقل هل هو نص أم رقم و إذا كان رقم يجب أن تستهدم الدالة strtoint مثل
dm.ADOQuery1.Filter:='NumBien='''+strtoint(sEdit1.Text)+'*'' ';
dm.ADOQuery1.Filtered:=true;
بالتوفيق
المشاركات : 71
المواضيع 17
:
: 0
الإنتساب : Dec 2013
makhlouf كتب :أخي تأكد من نوع الحقل هل هو نص أم رقم و إذا كان رقم يجب أن تستهدم الدالة strtoint مثل
dm.ADOQuery1.Filter:='NumBien='''+strtoint(sEdit1.Text)+'*'' ';
dm.ADOQuery1.Filtered:=true;
بالتوفيق
بارك الله فيك أخي ، جربت الكود و لم يقبل التنفيد و لكن بعد اجتهاد متواضع مني طبقت التنفيد التالي وقد نجح معي ولكن تبقي مشكل
السهم لا يأتي في مكون DBGrid يعني لا ينزل يبقى في الاول للتوضيح اكثر سأعطيك مثال
مثال عندي ارقام من 1 الى 10 لو اقوم بالبحث عن صاحب الرقم 66 تظهر رسالة انه غير مسجل
و عندما ابحث مثلا عن رقم 5 او 9 او 4 يقول لي مسجل و لكن السهم لا ينزل في DBGrid
علما أني ****ه ينزل ،، و حفظك ربي من كل شر لما تقدمه لي من عون
كود :
dm.ADOQuery1.Close ;
dm.ADOQuery1.Parameters.ParamByName('c').value:=sEdit1.text;
dm.ADOQuery1.Open;
if dm.ADOQuery1.RecordCount=0 then showmessage('Ne Exist Pas') else showmessage ('Exist') ;
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
أخي حاول تجريب هذا الكود
procedure tform1.edit1change(sender:tobject);
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from bien where numbien like '+qoutedstr('%'+edit1.text+'%');
adoquery1.open;
end;
بالتوفيق
المشاركات : 71
المواضيع 17
:
: 0
الإنتساب : Dec 2013
بارك الله فيك أخي العزيز و جزاك الله خيرا ، نجحت بفضل الله و بفضلك ثانيا ، و كان أيضا ناقصني داتا سورس اخر خاص بالبحث
جزاكم الله خير اخي و جد سعيد بلإستفادة من علمك :d
و اعتذر على أي ازعاج فأخوك مبتدأ و مقبل على التخرج و السلام عليكم ،،
المشاركات : 211
المواضيع 16
:
: 8
الإنتساب : Jan 2012
و عليكم السلامورحمة الله تعالى و بركاته
و فيك بارك الله يا أخي و عفوا و نحن في استعداد تام لتقديم العون إن إستطعنا و نحن هنا لنتعلم و لننفع و ننتفع، وفقك الله في دراستك و حياتك يا أخي.
بالتوفيق