下面这段代码运行没问题,就是不能把code对应的各个属性值写入相应的DBEdit里面.
code由ComboBox1.Text给出Procedure TBookForm.ComboBox1Change(Sender:TObject);
begin
  if Length(ComboBox1.Text)=10 then
  begin
    try
      with DataModule7.ADOTable1 do
      begin
        TableName:='TL.TL.dbo.Book';
        DBName.DataField:='Name';
        DBAuthor.DataField:='Author';
        DBPress.DataField:='Press';
        DBOutTime.DataField:='OutTime';
        DBMemo.DataField:='Memo';        Active:=True;
        Locate('Code',ComboBox1.Text,[]);
        Edit;
      end;
    except
      MessageDlg('数据操作失败',mtError,[mbok],0);
    end;
  end;
end;多谢!!!!多谢!!!!!!!!!

解决方案 »

  1.   

    Procedure TBookForm.ComboBox1Change(Sender:TObject);
    begin
      if Length(ComboBox1.Text)=10 then
      begin
        try
          with DataModule7.ADOTable1 do
          begin
          
            Active:=True;      Locate('Code',ComboBox1.Text,[]);
           Edit;
           TableName:='TL.TL.dbo.Book';
            DBName.DataField:='Name';
            DBAuthor.DataField:='Author';
            DBPress.DataField:='Press';
            DBOutTime.DataField:='OutTime';
            DBMemo.DataField:='Memo';
            Post;
          end;
        except
          MessageDlg('数据操作失败',mtError,[mbok],0);
        end;
      end;
    end;
      

  2.   

    这样它说没有Tablename,我再把tablename移到前面时,还是不能显示出来
      

  3.   

    第一检查你表是否连接,设置了表名
    第二如果你是修改那条数据的话,请检查是否有这条数据?
    Locate('Code',ComboBox1.Text,[]);//或者你这有空格
    Locate('Code',Trim(ComboBox1.Text),[])
    第三,你那个判断很重要 Length(ComboBox1.Text)=10 ???为什么它非要等于10呢最好TRIM()一下,
    不是你应该不得于0才对
      

  4.   

    连接那些没有问题,我在建表时规定了Code的长度为10的.
      

  5.   

    不知道你的trim是什么意思.加上去也没任何反应,怎么看它是不是等于0也不知道.