如何使用ADO将值插入Excel文件?

时间:2023-01-20 09:48:23

I'm using the following code to insert value in the Excel file:

我正在使用以下代码在Excel文件中插入值:

sAppend:='INSERT INTO ["Excel 8.0;Database=' + Edit1.Text + ';"].[Sheet1$] (d) ' + FormatDateTime('d/m/yyyy', now)+';';
AdoQuery1.SQL.Text:=sAppend;
AdoQuery1.ExecSQL;

Previous routine is completely shown.

完全显示了以前的例程。

Connection to the Excel file

连接到Excel文件

procedure TForm1.ConnectToExcel;  
var strConn :  widestring;
begin
  strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +
   'Data Source=' + Edit1.Text + ';' +
   'Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";Persist Security Info=False';

  AdoConnection1.Connected:=False;
  AdoConnection1.ConnectionString:=strConn;
  try
    AdoConnection1.Open;
    AdoConnection1.GetTableNames(ComboBox1.Items,True);
  except
    ShowMessage('Unable to connect to Excel, make sure the workbook ' + Edit1.Text +     'exist!');
    raise;
  end;
end;(*ConnectToExcel*)

procedure TForm1.FetchData;
begin
  StatusBar1.SimpleText:='';

  if not AdoConnection1.Connected then ConnectToExcel;

  AdoQuery1.Close;
  AdoQuery1.SQL.Text:=Edit2.Text;
  try
    AdoQuery1.Open;
  except
    ShowMessage('Unable to read data from Excel, make sure the query ' + Edit1.Text + ' is meaningful!');
    raise;
  end;
end;

Can anyone tell me what am I doing wrong ?

谁能告诉我我做错了什么?

Error is "Syntax error in INSERT INTO statement".

错误是“INSERT INTO语句中的语法错误”。

1 个解决方案

#1


1  

Found solution:

找到解决方案

sAppend:='INSERT INTO [Sheet1$] (d) values ("' + DateToStr(now) +'")';
AdoQuery1.SQL.Text:=sAppend;
AdoQuery1.ExecSQL;

#1


1  

Found solution:

找到解决方案

sAppend:='INSERT INTO [Sheet1$] (d) values ("' + DateToStr(now) +'")';
AdoQuery1.SQL.Text:=sAppend;
AdoQuery1.ExecSQL;