以Excel为数据库编程,可以连上,但无法更新数据? 找金蝶财务软件怎么用
财务软件版1楼: Connectionstring:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls; Extended Properties="Excel 8.0; HDR=No; IMEX=1"; Persist Security Info=False
SQL.text:=’SELECT * FROM [Sheet1$]
可以连上,但修改时出各种错误
With adoquery1 do
Begin
Edit;
FieldByName(‘F10’).asstring:=’aaa’
Post;
End;
多次实验出错: ‘运作必须使用更新查询
或者: 数值位溢出
等错误提示
偶尔几次没有错误,但相同的设定下次又出错!?
请各路达人相助!!!
Parameters.ParameterByName(''a'').value:=''abc'';
execute;
end;
也出同样的错误呀!?
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls; Extended Properties="Excel 8.0; HDR=No; IMEX=1"; Persist Security Info=False
SQL.text:=’SELECT * FROM [Sheet1$]
可以连上,但修改时出各种错误
With adoquery1 do
Begin
Edit;
FieldByName(‘F10’).asstring:=’aaa’
Post;
End;
多次实验出错: ‘运作必须使用更新查询
或者: 数值位溢出
等错误提示
偶尔几次没有错误,但相同的设定下次又出错!?
请各路达人相助!!!
2楼: OPEN 了没?
Edit去掉看看 如金蝶财务软件怎么用
3楼: 或者参考下
http://www.pconline.com.cn/pcedu/empolder/gj/delphi/0409/455545.html
4楼: Open是肯定的,不然怎么算连上!
Edit去掉过也不行
要以ado的方式,不想以OLE处理.
5楼: 这种显然不行,你必须写SQL语句才可以提交。
6楼: 但我用AdoCommand用以下语句也不行
UDPATE [Sheet1$]
SET F10=''aaa''
WHERE F2=:a
with adocommand1 do
begin
Parameters.ParameterByName(''a'').value:=''abc'';
execute;
end;
也出同样的错误呀!?
财务软件版7楼: 建议你给excel中sheet1增加标题行,不要默认f1,f2...f10,标题行其实就是字段列了,我试过将纪录显示在dbgrid中是可以更新并保存的。
8楼: 关注
我也试过,用SQL语句更新数据时,在程序运行时更新正常,只要不退出,操作都正常,但是程序一退出,下次再运行时,就打不开EXCEL文件了,说是“非预期的格式”,到现在还没搞定呢。[:(]