(18-05-2022, 10:49 PM)Ndagor كتب : انظر الى المثال المرفق
شكرا ما قصدته هو جلبه الى جدول اكسس موجود مسبقا مثلا جدول الطلبة يحتوي علي 100 طالب اقوم باضافة 200 طالب في اكسل ومعلوماتهم ثم اضيفهم الى جدول اكسس الاول
20-05-2022, 01:51 PM (آخر تعديل لهذه المشاركة: 20-05-2022, 01:56 PM بواسطة Ndagor.)
حسنا يمكن استعمال المثال السابق للاستيراد بيانات اكسل و ااضافتها الى ملف اكسس ,,,بالفتراض انك تستعمل ADOQuery او ADOTable فكلاهما يقوم بنفس الشي ,,, يمكنك العمل Transaction لالغاء عملية الاضافة في حال وقوع خطا في استراد حيث يمكنك الغاء الاضافات الجديدة و البد ء من جديد بعد تصحيح البيانات الخطا في الاكسل ....
(20-05-2022, 01:51 PM)Ndagor كتب : حسنا يمكن استعمال المثال السابق للاستيراد بيانات اكسل و ااضافتها الى ملف اكسس ,,,بالفتراض انك تستعمل ADOQuery او ADOTable فكلاهما يقوم بنفس الشي ,,, يمكنك العمل Transaction لالغاء عملية الاضافة في حال وقوع خطا في استراد حيث يمكنك الغاء الاضافات الجديدة و البد ء من جديد بعد تصحيح البيانات الخطا في الاكسل ....
procedure TForm2.Button1Click(Sender: TObject);
var
ExelFile,Dir:string;
xlApp,xlSheet,xlFile:Variant;
line,LastCorrect:integer;
begin
Dir:=ExtractFilePath(ParamStr(0));
if not PromptForFilename(ExelFile,'Excel|*.xlsx','','', Dir) then
Exit;
xlApp:= CreateOleObject('Excel.Application');
try
xlApp.Visible := False;
xlApp.DisplayAlerts := False;
xlFile := xlApp.Workbooks.Open(ExelFile);
xlSheet:=xlFile.Sheets['Feuil1'];
ADOQuery1.DisableControls();
try
LastCorrect:= xlSheet.Range['A1'].End[-4121].Row;
for line := 2 to LastCorrect do
begin
ADOQuery1.Append();
ADOQuery1.FieldByName('col1').AsVariant:=xlSheet.Cells[1].Item[line].value;
ADOQuery1.FieldByName('col2').AsVariant:=xlSheet.Cells[2].Item[line].value;
ADOQuery1.FieldByName('col3').AsVariant:=xlSheet.Cells[3].Item[line].value;
ADOQuery1.Post();
end;
finally
ADOQuery1.EnableControls();
end;
finally
xlApp.Quit;
end;
end
اين جدول الاكسس وماهي اعمدته
ذعلى حساب مافهمت الجدول الاول هو الجدول الاكسل المراد اضافته والكود الثاني هو الذي يقوم باضافة الجدول الى اكسس ولكن عند تطبيق الكود ضهر لي ملف اكسل وليس اكسس