哎,整了一天了太累了...最后问大家一个问题....

jxbw7408 2008-08-26 04:25:10
ADOTable1.Active:=true;
ADOtable1.Append;
for A:=1 to StringGrid1.RowCount-1 do
StringGrid1.Col:=1;
StringGrid1.Row:=a;
StringGrid1.SetFocus;
ADOtable1.FieldValues['编码']:=StringGrid1.Cells[1,a];
ADOtable1.FieldValues['名称']:=StringGrid1.Cells[2,a];
ADOtable1.FieldValues['规格']:=StringGrid1.Cells[3,a];
ADOtable1.FieldValues['单位']:=StringGrid1.Cells[4,a];
ADOtable1.FieldValues['单价']:=StringGrid1.Cells[5,a];
ADOtable1.FieldValues['数量']:=StringGrid1.Cells[6,a];
ADOtable1.FieldValues['金额']:=StringGrid1.Cells[7,a];
ADOtable1.FieldValues['备注']:=StringGrid1.Cells[8,a];
ADOtable1.post;


上面编码是想通过ADOtable把表中数据写到 mdb数据文件里...结果不对
Unit6.pas(165): FOR-Loop variable 'A' may be undefined after loop
...全文
135 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿三 2008-08-26
  • 打赏
  • 举报
回复
先open,然后append试试
jxbw7408 2008-08-26
  • 打赏
  • 举报
回复
所有回复的都给分.谢谢了
fa_ge 2008-08-26
  • 打赏
  • 举报
回复
干什么要这样写,直接用SQL

for A:=1 to StringGrid1.RowCount-1 do
begin
adoquery1.sql.clear;
adoquery1.sql.add('INSERT INTO t (f1,f2,f3...) SELECT '''+StringGrid1.Cells[1,A]+''',... ')
adoquery1.execsql;
end
Corn1 2008-08-26
  • 打赏
  • 举报
回复
是Append位置有问题,应该放到循环里面第一行。
jadeluo 2008-08-26
  • 打赏
  • 举报
回复

ADOTable1.Active:=true;
for A:=1 to StringGrid1.RowCount-1 do
begin
ADOtable1.Append;
StringGrid1.Col:=1;
StringGrid1.Row:=a;
StringGrid1.SetFocus;
ADOtable1.FieldValues['编码']:=StringGrid1.Cells[1,a];
ADOtable1.FieldValues['名称']:=StringGrid1.Cells[2,a];
ADOtable1.FieldValues['规格']:=StringGrid1.Cells[3,a];
ADOtable1.FieldValues['单位']:=StringGrid1.Cells[4,a];
ADOtable1.FieldValues['单价']:=StringGrid1.Cells[5,a];
ADOtable1.FieldValues['数量']:=StringGrid1.Cells[6,a];
ADOtable1.FieldValues['金额']:=StringGrid1.Cells[7,a];
ADOtable1.FieldValues['备注']:=StringGrid1.Cells[8,a];
ADOtable1.post;
end;
jxbw7408 2008-08-26
  • 打赏
  • 举报
回复
仍然是没有解决....


还是只能读一条数据
jxbw7408 2008-08-26
  • 打赏
  • 举报
回复
问题解决了...看来真是晕了...

ADOtable1.post;位置有问题
jxbw7408 2008-08-26
  • 打赏
  • 举报
回复
ADOTable1.Active:=true;
ADOtable1.Append;
for A:=1 to StringGrid1.RowCount-1 do
begin

ADOtable1.FieldValues['编码']:=StringGrid1.Cells[1,a];
ADOtable1.FieldValues['名称']:=StringGrid1.Cells[2,a];
ADOtable1.FieldValues['规格']:=StringGrid1.Cells[3,a];
ADOtable1.FieldValues['单位']:=StringGrid1.Cells[4,a];
ADOtable1.FieldValues['单价']:=StringGrid1.Cells[5,a];
ADOtable1.FieldValues['数量']:=StringGrid1.Cells[6,a];
ADOtable1.FieldValues['金额']:=StringGrid1.Cells[7,a];
ADOtable1.FieldValues['备注']:=StringGrid1.Cells[8,a];
ADOtable1.post;
end;

所有代码....贴上来了...又出新问题


读去读来只读第一行的数据,提示ADOtable1:dataset not in edit or insert mode

又晕了....
yuqianyi1974 2008-08-26
  • 打赏
  • 举报
回复
同意l楼和2楼
Corn1 2008-08-26
  • 打赏
  • 举报
回复
for A:=1 to StringGrid1.RowCount-1 do
begin //少了个begin...end
StringGrid1.Col:=1; //不知道这三句话放在这里有啥用
StringGrid1.Row:=a; //同上
StringGrid1.SetFocus; //同上
ADOtable1.FieldValues['编码']:=StringGrid1.Cells[1,a];
ADOtable1.FieldValues['名称']:=StringGrid1.Cells[2,a];
ADOtable1.FieldValues['规格']:=StringGrid1.Cells[3,a];
ADOtable1.FieldValues['单位']:=StringGrid1.Cells[4,a];
ADOtable1.FieldValues['单价']:=StringGrid1.Cells[5,a];
ADOtable1.FieldValues['数量']:=StringGrid1.Cells[6,a];
ADOtable1.FieldValues['金额']:=StringGrid1.Cells[7,a];
ADOtable1.FieldValues['备注']:=StringGrid1.Cells[8,a];
ADOtable1.post;
end;
yhloveys 2008-08-26
  • 打赏
  • 举报
回复
变量A 你先定义了吗?

var A : Integer;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧