以下是我的程序代码,但是始终无法实现该功能,请各位大侠帮忙改改~
我希望根据书号的改变其他控件显示的内容相应地改变~
procedure TBookAdd.TabSheet2Show(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select distinct 书号 from 图书信息表');
ADOQuery1.Open;
ComboBox1.Clear;
while not ADOquery1.Eof do
begin
combobox1.Items.Add(ADOquery1.fieldbyname('书号').AsString);
ADOquery1.Next;
end;
end;procedure TBookAdd.ComboBox1Change(Sender: TObject);
begin
if trim(ComboBox1.Text)='' then
begin
try
ADOQuery1.Active:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 图书信息表 where 书号='''+combobox1.text+'''');
ADOQuery1.Open;
ADOquery1.fieldbyname('书名').AsString:=DBName.Text;
ADOquery1.fieldbyname('作者').AsString:=DBAuthor.Text;
ADOquery1.fieldbyname('出版社').AsString:=DBPress.Text;
ADOquery1.fieldbyname('出版日期').AsString:=DBOutDate.Text;
ADOquery1.fieldbyname('价格').AsString:=DBCost.Text;
ADOquery1.fieldbyname('备注').AsString:=DBEdit1.Text;
ADOquery1.fieldbyname('数量').AsString:=DBEdit2.Text;
ADOquery1.fieldbyname('类别').AsString:=DBEdit3.Text;
ADOquery1.fieldbyname('位置').AsString:=DBName.Text;
except
MessageDlg('数据操作出错',mtError,[mbok],0);
end;
end;
end;
我希望根据书号的改变其他控件显示的内容相应地改变~
procedure TBookAdd.TabSheet2Show(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select distinct 书号 from 图书信息表');
ADOQuery1.Open;
ComboBox1.Clear;
while not ADOquery1.Eof do
begin
combobox1.Items.Add(ADOquery1.fieldbyname('书号').AsString);
ADOquery1.Next;
end;
end;procedure TBookAdd.ComboBox1Change(Sender: TObject);
begin
if trim(ComboBox1.Text)='' then
begin
try
ADOQuery1.Active:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 图书信息表 where 书号='''+combobox1.text+'''');
ADOQuery1.Open;
ADOquery1.fieldbyname('书名').AsString:=DBName.Text;
ADOquery1.fieldbyname('作者').AsString:=DBAuthor.Text;
ADOquery1.fieldbyname('出版社').AsString:=DBPress.Text;
ADOquery1.fieldbyname('出版日期').AsString:=DBOutDate.Text;
ADOquery1.fieldbyname('价格').AsString:=DBCost.Text;
ADOquery1.fieldbyname('备注').AsString:=DBEdit1.Text;
ADOquery1.fieldbyname('数量').AsString:=DBEdit2.Text;
ADOquery1.fieldbyname('类别').AsString:=DBEdit3.Text;
ADOquery1.fieldbyname('位置').AsString:=DBName.Text;
except
MessageDlg('数据操作出错',mtError,[mbok],0);
end;
end;
end;
为什么都要这样写啊?我感觉.AsString是强制数据转换的一种表达,是个其他变量赋值的表达。
ADOquery1.fieldbyname('书名').value:= DBName.Text;
DBName.Text:=ADOquery1.fieldbyname('书名').AsString;
我是想要知道要如何实现根据书号的改变其他控件里的内容也跟着变!!
我希望根据书号的改变其他控件显示的内容相应地改变~
procedure TBookAdd.TabSheet2Show(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select distinct 书号 from 图书信息表');
ADOQuery1.Open;
ComboBox1.Clear;
ADOQuery1.frist;
while not ADOquery1.Eof do
begin
combobox1.Items.Add(ADOquery1.fieldbyname('书号').AsString);
ADOquery1.Next;
end;
end; procedure TBookAdd.ComboBox1Change(Sender: TObject);
begin
if trim(ComboBox1.Text)<>'' then
begin
try
ADOQuery1.Active:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 图书信息表 where 书号='''+combobox1.text+'''');
ADOQuery1.Open;
DBName.Text:=ADOquery1.fieldbyname('书名').AsString;
DBAuthor.Text:=ADOquery1.fieldbyname('作者').AsString;
DBPress.Text:=ADOquery1.fieldbyname('出版社').AsString;
DBOutDate.Text:=ADOquery1.fieldbyname('出版日期').AsString;
DBCost.Text:=ADOquery1.fieldbyname('价格').AsString;
DBEdit1.Text:=ADOquery1.fieldbyname('备注').AsString;
DBEdit2.Text:=ADOquery1.fieldbyname('数量').AsString;
DBEdit3.Text:=ADOquery1.fieldbyname('类别').AsString;
DBName.Text:=ADOquery1.fieldbyname('位置').AsString;
except
MessageDlg('数据操作出错',mtError,[mbok],0);
end;
end;
end;
DBOutDate.Text:=ADOquery1.fieldbyname('出版日期').AsString; ?