access violation در ارسال به اکسل
با سلام
در اجرای کد زیر وقتی میخوام داده ها رو از DataGrid به اکسل اکسپورت کنم با خطای Access violation روبرو میشم. من یک برنامه نویس C# هستم و متاسفانه در مورد Delphi هیچ اطلاعی ندارم. . ممنون میشم راهنمایی کنید.
sx1: TscExcelExport;
...
procedure TForm1.exerExecute(Sender: TObject);
var
ds : TDataset;
cname,cclass : string;
begin
cname := Screen.ActiveControl.Name;
cclass := Screen.ActiveControl.ClassName;
if cclass='TDBGridEh' then
begin
ds:=(ActiveControl As TDBGridEh).DataSource.DataSet;
try
sx1.ExcelVisible:=True;
sx1.LoadDefaultProperties;
sx1.Dataset:=ds ;
sx1.WorksheetName:='Sheet1';
sx1.ExportDataset;
finally
sx1.Disconnect;
end;
end;
if cclass='TDBGrid' then
begin
ds:=(ActiveControl As TDBGrid).DataSource.DataSet;
try
sx1.ExcelVisible:=True;
sx1.LoadDefaultProperties;
sx1.Dataset:=ds ;
sx1.WorksheetName:='Sheet1';
sx1.ExportDataset;
finally
sx1.Disconnect;
end;
end;
end;
نقل قول: access violation در ارسال به اکسل
سلام. روی این کد ها break point بگذارید و برنامه رو با F8 خط به خط ران کنید تا ببینیم سر کدوم خط ایراد دارید. شاید در ActiveControl
نقل قول: access violation در ارسال به اکسل
با سلام،
این خطا نمیتونه از ActiveControl باشه، چون کلاس اون توی شرطها بررسی شده. من حدس می زنم که خطا مربوط به sx1 هست و باید قبل از استفاده از اون، اون رو Create کنید.
موفق باشید...
نقل قول: access violation در ارسال به اکسل
نقل قول:
این خطا نمیتونه از ActiveControl باشه، چون کلاس اون توی شرطها بررسی شده.
اتفاقا می تونه.
شما فرض کن به هر دلیلی نال بده. چی می گیری جز AV ؟
اما همین طور ممکنه در Finally ارور داشته باشیم.
نقل قول: access violation در ارسال به اکسل
با تشکر بله شما درست حدس زدید خطا از sx1 بود و با Create اون مشکل حل شد.
ممنون