السلام عليكم
لدي 4 جداول ارغب ان اجلب منهم البيانات واضعها في dbgrid استطيع ان اعمل هذا بواسطة اوامر sql لكن ارغب في ان اعطي للمستخدم حرية الادخال
وما اريده هو ان اضع 4 dbloockupcombobox و button عندما اضغط على البوتون يدخل البيانات الموجودة في dbloockupcombobox في dbgrid مع ظهور مساج تحذيري عند ادخال نفس البيانات وجزاكم الله خيرا
و عليكم السلام
إذا كان ال dbgrid متصل مع جدول ما, قم بعملية بحث سريعة داخل الجدول فإذا كانت البيانات موجودة تظهر تلك الرسالة و تخرج من التنفيذ و في حال عدم وجود بيانات استخدم adocommand بأن تضع فيها الsql الذي تريد وقم بتنفيذه, طبعا قيم الاستعلام هذا سوف تأخذ من ال dbloockupcombobox.
(22-10-2017, 03:37 AM)PLANSHARP كتب : [ -> ]طيب لنبدأ:
كود :
if ADOTable1.Locate('yourfield1;yourfield2;yourfield3',VarArrayOf([DBLookupComboBox1.Field.Value,DBLookupComboBox2.Field.Value,DBLookupComboBox3.Field.Value]),[loCaseInsensitive]) then
ShowMessage('Already Exist!')
else
begin
///method 1
ADOCommand1.CommandText:='insert into table ........';
ADOCommand1.Execute;
///or method 2
ADOTable1.Append;
ADOTable1.FieldByName('yourfield1').Value:=DBLookupComboBox1.Field.Value;
ADOTable1.FieldByName('yourfield2').Value:=DBLookupComboBox2.Field.Value;
ADOTable1.FieldByName('yourfield3').Value:=DBLookupComboBox3.Field.Value;
ADOTable1.Post;
end;
للاسف الكود هذا فيه ماشكل
اولا عندما اختار البيانات من اي dbloockupcombobox فانها تتغير مباشرة داخل dbgrid
وانا لست اريد ذلك اريد ان تتغير لما اضغط على button
ثانيا المساج الاول في الكود تقريبا ليس فيه فائدة لانني كلما اعدل سطرا في dbgrid
عن طريق اختيار البيانات من dbloockupcombobox يظهر المساج وهذا مالا اريده
ثالثا الكود يعدل فقط على بيانات موجودة فعندما ارغب في كتابة سطر جديد في dbgrid
يظهر خطا
هذا ما يظهر لي من اخكاء في الكود فارجوا المساعدة والله الموفق
لم أتوقع أن تكون الdbloockupcombobox مربوطة مع نفس الجدول, وهذا لا ينبغي, وإذا كنت لابد تريد ذلك, حمل تلك اليبانات التي تريدها من كل عمود في combobox ومن ثم استخدم الكود السابق, مع استبدال DBLookupComboBox1.Field.Value, بـ combobox.text
(26-10-2017, 06:32 PM)PLANSHARP كتب : [ -> ]لم أتوقع أن تكون الdbloockupcombobox مربوطة مع نفس الجدول, وهذا لا ينبغي, وإذا كنت لابد تريد ذلك, حمل تلك اليبانات التي تريدها من كل عمود في combobox ومن ثم استخدم الكود السابق, مع استبدال DBLookupComboBox1.Field.Value, بـ combobox.text
السلام عليكم
اولا انا لا ارغب في استعمال dbcombobox لانني سوف اضطر الى ملئها بالبيانات وهذا مالا اريده
ثانيا كل dbloockupcombobox مربوطة بجدول مختلف عن الاخر وليس نفس الجدول
وانا اريد عندما اضغط على button يجلب البيانات من كل dbloockupcombobox (كل منها مرتبط بجدول مختلف ) ويضعها في جدول واحد حسب الصورة التي رفعتها وهذا رابطها
https://www.dropbox.com/s/57qynbo5wdch8y...e.JPG?dl=0
باختصار ارغب بملا جدول فارغ ببيانات اجلبها من جداول اخر مع شرط هو ان لن يتم اضافة البيانات الا اذا ضغط المستخدم على button
وجزاكم الله خيرا