Kolego maciejmt również dziękuje ci za odpowiedź ale jestem początkujący więc najlepiej przemawiają do mnie przykłady :)
Jeśli chodzi o rady kolegi to myślę że znalazłem rozwiązanie na formę wstawiam ADOQuery1 następnie ustawiam jego parametry połączenia a w kodzie zamieszczonym poniżej zmieniam tak aby tworzyć plik accesa, a nie exela.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons,ComObj, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
ADOQuery1: TADOQuery;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var XApp:Variant;
sheet:Variant;
r,c:Integer;
row,col:Integer;
filName:Integer;
q:Integer;
begin
XApp:=CreateOleObject('Excel.Application');
XApp.Visible:=true;
XApp.WorkBooks.Add(-4167);
XApp.WorkBooks[1].WorkSheets[1].Name:='Sheet1';
sheet:=XApp.WorkBooks[1].WorkSheets['Sheet1'];
for filName:=0 to AdoQuery1.FieldCount-1 do
begin
q:=filName+1;
sheet.Cells[1,q]:=AdoQuery1.Fields[filName].FieldName;
end;
for r:=0 to AdoQuery1.RecordCount-1 do
begin
for c:=0 to AdoQuery1.FieldCount-1 do
begin
row:=r+2;
col:=c+1;
sheet.Cells[row,col]:=AdoQuery1.Fields[c].AsString;
end;
AdoQuery1.Next;
end;
XApp.WorkSheets['Sheet1'].Range['A1:AA1'].Font.Bold:=True;
XApp.WorkSheets['Sheet1'].Range['A1:K1'].Borders.LineStyle :=13;
XApp.WorkSheets['Sheet1'].Range['A2:K'+inttostr(AdoQuery1.RecordCount-1)].Borders.LineStyle :=1;
XApp.WorkSheets['Sheet1'].Columns[1].ColumnWidth:=16;
XApp.WorkSheets['Sheet1'].Columns[2].ColumnWidth:=7;
XApp.WorkSheets['Sheet1'].Columns[3].ColumnWidth:=19;
XApp.WorkSheets['Sheet1'].Columns[4].ColumnWidth:=9;
XApp.WorkSheets['Sheet1'].Columns[5].ColumnWidth:=9;
XApp.WorkSheets['Sheet1'].Columns[6].ColumnWidth:=9;
XApp.WorkSheets['Sheet1'].Columns[7].ColumnWidth:=46;
XApp.WorkSheets['Sheet1'].Columns[8].ColumnWidth:=9;
XApp.WorkSheets['Sheet1'].Columns[9].ColumnWidth:=7;
XApp.WorkSheets['Sheet1'].Columns[10].ColumnWidth:=6;
XApp.WorkSheets['Sheet1'].Columns[11].ColumnWidth:=13;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
ADOQuery1.Open;
end;
end.
Największym problemem dla mnie jest edycja aby tworzył mi się plik accessa a nie exela bo z ustanowieniem połączania poradził bym sobie.
Ewentualni prosił bym jeszcze o wyjaśnienie co ustalają w pliku poniższe linie kodu, bo resztę rozumiem
XApp.WorkSheets['Sheet1'].Range['A1:AA1'].Font.Bold:=True;
XApp.WorkSheets['Sheet1'].Range['A1:K1'].Borders.LineStyle :=13;
XApp.WorkSheets['Sheet1'].Range['A2:K'+inttostr(AdoQuery1.RecordCount-1)].Borders.LineStyle :=1;
Dziękuję i pozdrawiam