Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Delphi更新Excel ADO的单元格查询_Excel_Delphi_Ado - Fatal编程技术网

从Delphi更新Excel ADO的单元格查询

从Delphi更新Excel ADO的单元格查询,excel,delphi,ado,Excel,Delphi,Ado,我有以下代码,可以使用TADOConnection和TADOQuery打开我的Excel工作表: conExcel.ConnectionString := 'Provider=Microsoft.JET.OLEDB.4.0;Data Source="D:\temp\file.xls";Extended Properties="Excel 8.0;HDR=No"'; conExcel.Connected := true; 当我运行以下代码时: queryExcel1.SQL.Text := 'S

我有以下代码,可以使用TADOConnection和TADOQuery打开我的Excel工作表:

conExcel.ConnectionString := 'Provider=Microsoft.JET.OLEDB.4.0;Data Source="D:\temp\file.xls";Extended Properties="Excel 8.0;HDR=No"';
conExcel.Connected := true;
当我运行以下代码时:

queryExcel1.SQL.Text := 'SELECT * FROM [Hoja1$]';
queryExcel1.Open;
while not queryExcel1.eof do
begin
  showmessage(queryExcel1.Fields.Fields[0].AsString);
  queryExcel1.Next;
end;
我得到文件的每一行,所以它工作正常,但我想更新一个单元格。 我正在使用以下代码:

queryExcel2.SQL.Text := 'UPDATE [Hoja1$] SET F1 = 555555';
queryExcel2.ExecSQL;

它以某种方式将工作表上的每个“A”单元格更新为555555,但我真正想要的是将A1单元格设置为555555。关于如何包含查询的WHERE部分的任何提示。谢谢。

如果您想使用Adoquery,您必须将ParamCheck设置为false,因为您必须对要更新的范围使用

另一种选择是直接使用连接。
在下面的示例中,B2:B2范围与F1一起使用,F1是第一列Jet的默认名称。(B2是我们要更新的单元格)


如果要使用Adoquery,必须将ParamCheck设置为false,因为必须对要更新的范围使用

另一种选择是直接使用连接。
在下面的示例中,B2:B2范围与F1一起使用,F1是第一列Jet的默认名称。(B2是我们要更新的单元格)


我尝试了queryExcel1.SQL.Text:=“从[Hoja1$A1:A10]中选择*”;即使在select语句中,它也会失败,并出现错误:“参数对象定义不正确”“我已尝试queryExcel1.SQL.Text:=”select*FROM[Hoja1$A1:A10];即使在select语句中,它也会失败并出现错误:“Parameter对象定义不正确”将paramcheck设置为false就成功了!现在工作正常。将paramcheck设置为false成功!现在工作得很好。
  Q.SQL.Text := 'UPDATE [Hoja1$B2:B2] SET [F1] = 555555';
  Q.ExecSQL;
  // or:
  //AdoConnection1.Execute('UPDATE [Hoja1$B2:B2] SET [F1] = 555555');