我程序是这样的,在labelframe框架中调用formpatient,在formpatient里写入数据库,然后在labelframe中定位刚输入的记录,并把它的各字段值赋给labelframe的各字段,可得不到结果?请各位高手指点,感激不敬!
procedure TlabelFrame.BitBtn3Click(Sender: TObject);
begin
application.CreateForm(tformpatient,formpatient);
formpatient.ShowModal;
formpatient.Free;
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from tblpatient ');
adoquery2.Refresh;
edit6.Text:=adoquery2.fields[0].value;
edit2.Text:=adoquery2.fields[1].value;
edit5.Text:=adoquery2.Fields[2].Value;
edit3.Text:=inttostr(adoquery2.Fields[4].Value);
edit15.Text:=datetostr(adoquery2.Fields[3].Value);
edit9.Text:=adoquery2.Fields[5].Value;
edit11.Text:=adoquery2.Fields[6].Value;
edit12.Text:=adoquery2.Fields[7].Value;
edit13.Text:=adoquery2.Fields[8].Value;
edit8.Text:=adoquery2.Fields[9].Value;
edit14.Text:=adoquery2.Fields[10].Value;
memo3.Text:=adoquery2.Fields[11].Value;
memo4.Text:=adoquery2.Fields[12].Value;
edit7.Text:=edit6.Text;
end;
procedure TlabelFrame.BitBtn3Click(Sender: TObject);
begin
application.CreateForm(tformpatient,formpatient);
formpatient.ShowModal;
formpatient.Free;
if adoquery2.Active then adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from tblpatient ');
adoquery2.Refresh;
edit6.Text:=adoquery2.fields[0].value;
edit2.Text:=adoquery2.fields[1].value;
edit5.Text:=adoquery2.Fields[2].Value;
edit3.Text:=inttostr(adoquery2.Fields[4].Value);
edit15.Text:=datetostr(adoquery2.Fields[3].Value);
edit9.Text:=adoquery2.Fields[5].Value;
edit11.Text:=adoquery2.Fields[6].Value;
edit12.Text:=adoquery2.Fields[7].Value;
edit13.Text:=adoquery2.Fields[8].Value;
edit8.Text:=adoquery2.Fields[9].Value;
edit14.Text:=adoquery2.Fields[10].Value;
memo3.Text:=adoquery2.Fields[11].Value;
memo4.Text:=adoquery2.Fields[12].Value;
edit7.Text:=edit6.Text;
end;
改为
adoquery2.Open;
试一下
后来我又想把edit6.Text:=adoquery2.fields[0].value;和后面的几行换成edit6.Text:=adoquery2.fieldbyname().value;以便更直观的看,可是写到 adoquery2.时后面没有自动提示,我想是错误了。
还请指点,感谢了!
adoquery2.Refresh;改成:adoquery2.Open;
还有就是赋值的时候,注意类型
把refresh换成open就应该可以了
edit6.Text := uery2.parameters[0].value;
......
试试