Adoquery+Excel,Excel里有11个字段,我想动态生成11个DBEdit,一一对应Excel中的11个字段值,Excel表中前三个字段的值相同,循环三次没问题,循环到第四个就提示字段值找不到.不知道是怎么回事.问题应该在下面代码注释的地方,请大家帮忙.
procedure TForm1.FormCreate(Sender: TObject);
var
n,i:integer;
ADBtext:Array of TDBEdit;
begin
i:=Adoquery1.FieldCount;
SetLength(ADBtext,i);
for n:=Low(ADBtext) to High(ADBtext) do
begin
DbGrideh1.Columns.Items[n].Width:=90;
ADBtext[n]:=TDBEdit.create(self);
ADBtext[n].Parent:=self;
ADBtext[n].Visible:=true;
ADBtext[n].Height:=17;
ADBtext[n].Width:=65;
ADBtext[n].left:=488;
ADBtext[n].Top:=16+40*n;
ADBtext[n].DataSource:=DataSource1;
ADBtext[n].DataField:=Adoquery1.Fields[n].AsString;//问题出在这里
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
n,i:integer;
ADBtext:Array of TDBEdit;
begin
i:=Adoquery1.FieldCount;
SetLength(ADBtext,i);
for n:=Low(ADBtext) to High(ADBtext) do
begin
DbGrideh1.Columns.Items[n].Width:=90;
ADBtext[n]:=TDBEdit.create(self);
ADBtext[n].Parent:=self;
ADBtext[n].Visible:=true;
ADBtext[n].Height:=17;
ADBtext[n].Width:=65;
ADBtext[n].left:=488;
ADBtext[n].Top:=16+40*n;
ADBtext[n].DataSource:=DataSource1;
ADBtext[n].DataField:=Adoquery1.Fields[n].AsString;//问题出在这里
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货