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

时间:2012-06-27 17:27:51

标签: delphi ado tadoquery

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

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

完全显示上一个例程。

连接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;

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

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

1 个答案:

答案 0 :(得分:1)

找到解决方案:

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