السلام عليكم جميعا
اريد انشاء زر عند الضغط عليه انسخ خمس اعمدة من جدول الى خمس اعمدة في جدول اخر بنفس التسمية، وبعد ذلكاقوم بتغيير المعلومات في الجدول الاول و عند الضغط عليه مرة اخرى ينسخ المعلومات ويضيفها الى الجدول الثاني
(12-10-2017, 08:38 PM)PLANSHARP كتب : [ -> ]ما نوع قاعدة البيانات؟
أكسس
و عليكم السلام و رحمة الله
حلقة تكرارية (أو اثنتان متداخلتان), هل ينفع ؟
يمكنك إنشاء استعلامات تعديل داخل ملف الأكسس فهي سريعة جداً حتى لو كان عدد السجلات كبير أسرع بكثير من استخدام المحرك من الدلفي, أي تكون وظيفة هذا الإستعلام نسخ تلك الأعمدة إلى الجدول الثاني.
طريقة تنفيذ هذا الإستعلام تكون من الدلفي نفسها عن طريق adocommand إذا كنت تستخدم ADO, فيكفي أن تكتب اسم هذا الإستعلام داخل ال Commandtext و تقوم بعمل execute فسيقوم الأكسس بتنفيذه بشكل صامت و سريع.
وفقكم الله.
لم أتوصل الى حل فهل من مساعد.....
يمكنك إضافة مكون ADOQuery أو FDQuery على حسب ما تستخدم, وفي ال sql الخاص به:
PHP كود :
Insert into table_d
select * from table_s
table_d هو اسم الجدول الذي تريد النسخ إليه
table_s اسم الجدول الذي تريد النسخ منه
أيضا اذا اردت نسخ أعمدة معينة
PHP كود :
Insert into table_d(column1,column2,..)
select * from table_s(column1,column2,..)
ثم تقوم بتنفيذ الquery:
PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
FDQuery1.execute;
end;
غير fdquery1 الى اسم مكون الاستعلام الخاص بك
مثال استخدمته منذ مدة
يمكنك الاستفادة من هذا المثال و هو خاص بتحيين مخزون
كود :
begin
tfjourp.First;
Tfjourp.edit;
while not Tfjourp.EOF Do
begin
tfjour.Active:=true;
Tfjour.edit;
tfjour.First ;
while not tfjour.EOF Do
begin
if tfjourp.FieldValues['n_prod']=tfjour.Fieldvalues['n_prod'] then
begin
tfjour.Edit;
if tfjour.FieldValues['q_stok'] +tfjour.Fieldvalues['Q_entre']>= tfjourp.FieldValues['quantete']then
begin
tfjour.Fieldvalues['Q_sort']:=tfjourp.FieldValues['quantete'] ;
tfjour.Fieldvalues['Q_fin']:=tfjour.Fieldvalues['Q_entre']+tfjour.FieldValues['q_stok']-tfjour.FieldValues['q_sort'] ;
tfjour.Post;
end
else
end;
tfjour.next;
end;
tstock.Edit;
tstock.First;
while not Tstock.EOF Do
begin
if tfjourp.FieldValues['n_prod']=tstock.Fieldvalues['n_prod'] then
begin
tstock.Edit;
if tstock.Fieldvalues['Quantete']<tfjourp.FieldValues['quantete'] then
begin
ShowMessage('الكمية المطلوبة غير موجودة '+#13+#13+' '+tstock.Fieldvalues['produit']);
end
else
tstock.Fieldvalues['Quantete']:=tstock.Fieldvalues['Quantete']-tfjourp.FieldValues['quantete'] ;
tstock.Post;
end;
tstock.next;
end;
Tfjourp.Next;
end;
end;