本帖最后由 daisy0038 于 2009-09-13 16:32:17 编辑

解决方案 »

  1.   

    再说一遍:假如我要增DBGrid中增加很多名字,但是公司名称都是一样。我现在只需要输入名字(名字不要重复),如果在输公司的话就太麻烦了。兄弟们帮帮小弟!!
      

  2.   

    你在SQL语句中动态添加就好了,如果是变量的话,自己输入,公司名字都一样的每次都insert同意的就好了
      SQL.Add('insert into led_tb  Values('XX公司',:Def,:Control)');
      Params.ParamByName('Def').Value:=Edit.text;
      Params.ParamByName('Control').Value:=Edit2.text;
      

  3.   

    记得有一个onBeforeInsert和onAfterInsert可以在这两个事件中按排,插入前读取最后一行的“公司名称”,INSERT后,自动写入公司名称就行了。
      

  4.   

    procedure TForm1.ADOTable1NewRecord(DataSet: TDataSet);
    begin
      ADOTable.FieldByName('公司名称').AsString:='你的公司名称';
    end;这样每次新建记录时,会自动的添加你的公司名称,不须要你手动再输入
      

  5.   

    总有条件吧,什么情况输入什么公司
    procedure TForm1.ADOTableNewRecord(DataSet: TDataSet); 
    begin 
     if A='张三' then
       ADOTable.FieldByName('公司名称').AsString:='公司A'
     else if A='李四 then
       ADOTable.FieldByName('公司名称').AsString:='公司B'
     ...
    end; 要是没什么统一的情况,就做成下拉列表框的形式吧,类似ComboBox
    可以选择也可以手动输入
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    With DBGrid1.Columns[0].PickList do //0表示是公司名称所在的列
      begin
       Clear;
       Add('公司A');
       Add('公司B');
       Add('公司C');
       ...
      end;
    end;