المشاركات : 7
المواضيع 2
:
: 0
الإنتساب : Nov 2010
14-12-2015, 07:56 PM
(آخر تعديل لهذه المشاركة: 16-12-2015, 09:43 AM بواسطة Admin.)
السلام عليكم
اخوانى احتاج مساعدتكم فى dbgrid
انا عندى قاعدة بيانات فيها جدول خاص بمعلومات الشخص من اسم و لقب الى........ الجنس ( ذكر , انثى )
المطلوب كيف يتم احصاء عدد الذكور و يظهر العدد فى edit1.text
بحيث عند التغيير واضافة ذكر اخر يتغير ايضا فى edit1.text
http://store1.up-00.com/2015-12/1450117685281.png
و الله يبارك فيكم
المشاركات : 1,252
المواضيع 170
:
: 1,500
الإنتساب : Jul 2009
وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot
From MyTable
Group By Sex
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
المشاركات : 7
المواضيع 2
:
: 0
الإنتساب : Nov 2010
(14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot
From MyTable
Group By Sex
الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور
العدد يظهر عند بداية البرنامج لكن عند اضافة ذكر جديد العدد لا يتغير فى edit الا عند اعادة تشغيل البرنامج
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
(14-12-2015, 09:32 PM)eriktuz كتب : (14-12-2015, 08:57 PM)Unprogramme كتب : وعليكم السلام ورحمة الله وبركاته ،
يمكنك فعل ذلك باستخدام ال Sql
مثال ذلك :
كود :
select Distinct Sex , Count(Sex) as Tot
From MyTable
Group By Sex
الله يبارك فيك لقد حاولت ب adoquery من قبل و استطعت حساب عدد الذكور
العدد يظهر عند بداية البرنامج لكن عند اضافة ذكر جديد العدد لا يتغير فى edit الا عند اعادة تشغيل البرنامج
السلام عليكم
اغلق واعد فتح adoquery بعد الاضافة او اي تعديل هكدا
adoquery.close;
adoquery.open;
بالتوفيق
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 1,252
المواضيع 170
:
: 1,500
الإنتساب : Jul 2009
السلام عليكم ،
كما قال الأخ الفاضل bassem_43 بعد الحدث AfterPost للADOTable إغلق و افتح ال ADOQuery.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
المشاركات : 7
المواضيع 2
:
: 0
الإنتساب : Nov 2010
شكرا جزيلا
الان adoquery تقوم بعمل حساب عدد الذكور و كل شىء تمام بقى المشكل فى كيفية اضهار العدد فى edit.text
استعملت datasource و dbgrid واستعملت الكود EDIT1.TEXT:=IntToStr(DBGrid3.DataSource.DataSet.RecordCount);
و كل شىء تمام
لكن اطلت الطريق بهذه الطريقة و عندما اجعل dbgrid3 مخفية فان الناتج يصبح لا يظهر فى edit و انا لا احتاج ظهور ال dbgrid فى البرنامج
يعنى هل يمكن اظهار نتائج query مباشرة فى ال edit
المشاركات : 1,252
المواضيع 170
:
: 1,500
الإنتساب : Jul 2009
15-12-2015, 08:06 PM
(آخر تعديل لهذه المشاركة: 15-12-2015, 08:59 PM بواسطة أبو معاذ.)
السلام عليكم ،
هناك حلين و لك الاختيار ،
1- إذا أردت استعمال Edit ، فالحل أن تقوم بإرفاق القيمة برمجيا ، بمعنى ، في الحدث OnADOQueryOpen ، تكتب ما يلي :
كود :
Edit1.Text := ADOQuery.FieldByName('...').asString ;
2- الحل الثاني و هو ببساطة أن تستعمل DBEdit عوضا عن Edit ، طبعا إذا تحققت أن ال ADOQuery لا ترجع إلا قيمة واحدة.
و الباقي عليك.
وفقك الله لكل خير.
فكرة ،
لماذ لا تستعمل DbGrid آخر مربوط بال ADOQuery ؟
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
المشاركات : 7
المواضيع 2
:
: 0
الإنتساب : Nov 2010
16-12-2015, 05:15 PM
(آخر تعديل لهذه المشاركة: 16-12-2015, 05:37 PM بواسطة eriktuz.)
الله يبارك فيكم اخوانى على المساعدة
ساوضح اكثر انا استهمل ال adotable مع dbgrid ثم اضفت adoquery لتحسب لى عدد الذكور فقط الموجودين فى عمود الجنس الموجود فى adotable ثم يظهر الناتج كعدد فى edit او dbedit
الصورة :
http://store1.up-00.com/2015-12/1450117685281.png
اظن انني اخطات فى استعمال adoquery للاستعلام لانها تلعب دور adotable قهى تحتاج الى dbgrid
هل استطيع حساب عدد الذكور الموجودين فى الجدول adotable و اظهارهم فى edit باى طريقة من غير ado query لانى اظن اننى اخطات فى استعمال adoquery فهى تلعب نفس دور adotable فهما يحتاجان الى dbgrid لاظهار النتائج
والله يبارك يكم
هذه صورة توضيحية
http://store1.up-00.com/2015-12/1450282200511.png
المشاركات : 1,252
المواضيع 170
:
: 1,500
الإنتساب : Jul 2009
السلام عليكم ورحمة الله وبركاته ،
نعم يمكنك ذلك عن طريق البرمجة ،
مجرد فكرة للتطوير :
كود :
var nb : Integer
nb := 0 ;
ADOTable.First ;
while Not ADOTable.EOF do
Begin
if ADOTable.FieldByName('Sex').asString = 'ذكر' then
nb := nb + 1 ;
end ;
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
المشاركات : 7
المواضيع 2
:
: 0
الإنتساب : Nov 2010
(16-12-2015, 07:57 PM)Unprogramme كتب : السلام عليكم ورحمة الله وبركاته ،
نعم يمكنك ذلك عن طريق البرمجة ،
مجرد فكرة للتطوير :
كود :
var nb : Integer
nb := 0 ;
ADOTable.First ;
while Not ADOTable.EOF do
Begin
if ADOTable.FieldByName('Sex').asString = 'ذكر' then
nb := nb + 1 ;
end ;
الله يبارك فيك الله يحفظك و لكل من ساعدنى
الفكرة رائعة و هذا ما كنت ابحث عنه من دون استعمال ال adoquery
فقط تصحيح للكود يجب اضافة begin و end اخرى ليعمل الكود
كود :
var
nb : Integer;
begin
nb := 0;
ADOTable1.First;
while not ADOTable1.Eof do
begin
if ADOTable1.FieldByName('الجنس').asString = 'ذكر' then
nb := nb + 1;
ADOTable1.Next;
end;
eDIT1.TEXT:= IntToStr(nb);
end;