以下是我的程序代码,但是始终无法实现该功能,请各位大侠帮忙改改~
我希望根据书号的改变其他控件显示的内容相应地改变~
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;

解决方案 »

  1.   

    ADOquery1.fieldbyname('数量').AsString
    为什么都要这样写啊?我感觉.AsString是强制数据转换的一种表达,是个其他变量赋值的表达。
    ADOquery1.fieldbyname('书名').value:= DBName.Text;
    DBName.Text:=ADOquery1.fieldbyname('书名').AsString; 
      

  2.   

    回复yshuui:这不是我问题的重点吧!!!!!
    我是想要知道要如何实现根据书号的改变其他控件里的内容也跟着变!! 
      

  3.   

    以下是我的程序代码,但是始终无法实现该功能,请各位大侠帮忙改改~ 
    我希望根据书号的改变其他控件显示的内容相应地改变~ 
    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;
      

  4.   

    检查是不是类型出错了? 
       DBOutDate.Text:=ADOquery1.fieldbyname('出版日期').AsString;   ?
      

  5.   

    你把所有的DBEdit 都改成Edit
      

  6.   

    回复fonganzen :我按照你写的代码修改了,可是提示错误显示是:标准类型不匹配,请问要怎么修改????