نسخ اكثر من عمود من جدول الى اخر
#1
السلام عليكم جميعا
اريد انشاء زر عند الضغط عليه انسخ خمس اعمدة من جدول الى خمس اعمدة في جدول اخر بنفس التسمية، وبعد ذلكاقوم بتغيير المعلومات في الجدول الاول و عند الضغط عليه مرة اخرى ينسخ المعلومات ويضيفها الى الجدول الثاني
الرد
#2
ما نوع قاعدة البيانات؟
الرد
#3
(12-10-2017, 08:38 PM)PLANSHARP كتب : ما نوع قاعدة البيانات؟
أكسس
الرد
#4
و عليكم السلام و رحمة الله

حلقة تكرارية (أو اثنتان متداخلتان), هل ينفع ؟
من قال حاد عن أصله أو قال مات فقد كذب
الرد
#5
يمكنك إنشاء استعلامات تعديل داخل ملف الأكسس فهي سريعة جداً حتى لو كان عدد السجلات كبير أسرع بكثير من استخدام المحرك من الدلفي, أي تكون وظيفة هذا الإستعلام نسخ تلك الأعمدة إلى الجدول الثاني.

طريقة تنفيذ هذا الإستعلام تكون من الدلفي نفسها عن طريق adocommand إذا كنت تستخدم ADO, فيكفي أن تكتب اسم هذا الإستعلام داخل ال Commandtext و تقوم بعمل execute فسيقوم الأكسس بتنفيذه بشكل صامت و سريع.

وفقكم الله.
[-] كل من 1 user says قال شكرا ل PLANSHARP على المشاركة المفيدة
  • h-farid
الرد
#6
لم أتوصل الى حل فهل من مساعد.....
الرد
#7
أرفق تجربتك لنحاول معك
الرد
#8
او يمكنك استخدام مكون FDBatchMove
تم شرح المكون في دروس برنامج المبيعات
https://www.youtube.com/playlist?list=PL...7SoK1kNIVJ
[-] كل من 1 user says قال شكرا ل rahiche على المشاركة المفيدة
  • Bachirsoft
الرد
#9
يمكنك إضافة مكون 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(SenderTObject);
begin
FDQuery1
.execute;
end
غير fdquery1 الى اسم مكون الاستعلام الخاص بك
[-] كل من 1 user says قال شكرا ل Ben.Ja على المشاركة المفيدة
  • Bachirsoft
الرد
#10
مثال استخدمته منذ مدة
يمكنك الاستفادة من هذا المثال و هو خاص بتحيين مخزون

كود :
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;
[-] كل من 1 user says قال شكرا ل bouh25 على المشاركة المفيدة
  • Bachirsoft
الرد


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


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