我做了个查询窗口,在几个dbcombobox中写查询条件。
1、dbcombobox直接连接在要查询的表ADOTable11上
2、打开查询窗口的时候,这几个dbcombobox.text默认为表中最后一个记录的值
3、查询的代码是
ADOTable11.Edit;
     ADOQuery25.Close;
     ADOQuery25.SQL.Clear;
     s:='select * from a01 where callsign='+''''+DBComboBox2.Text+'''' +'and voy='+''''+DBComboBox4.Text+'''' +'and port='+''''+DBComboBox3.Text+'''';
     ADOQuery25.SQL.Add(s);
     ADOQuery25.Open;
     DataSource11.DataSet:=adoquery25;
后面还有其他表的查询代码问题是:
1、如果按照默认值查询,没有问题。
2、如果我想查询其他的(也就是把默认的条件改了),那末我保存后,表中的最后一条记录就被我改的那个查询条件覆盖掉。
如:
表中最后一条记录是
01 YANT  YAN TONG 0633E/0633W HAKAT 20061018
我想查询别的条件的结果,于是我输入
3FFK5 KUO TAI 0000 CNAQG
查询完后,我又把0000改为0101,保存后表中结果为id callsign MV voy port date re i
01 3FFK5 KUO TAI 0000 CNAQG 4301 3FFK5 KUO TAI 0101 CNAQG 22323213 62请帮我分析一下,我感觉是我在输入别的条件的时候,已经把默认记录在表中盖掉了,怎么样才能解决这个问题阿?谢谢指教!

解决方案 »

  1.   

    老大,这样不改才怪。
    去掉ADOTable11.Edit;
    不行用非数据编辑控件。
      

  2.   

    查询时修改肯定不对。
    还是不要用DBComboBox了
      

  3.   

    那我下面的dbgrid也是查询出来后再修改的阿
      

  4.   

    ADOTable11.Edit;adoquery25;最好不要连接到一个DataSource上面。否则就乱了,本来dbcombobox就是用来修改的,如果要查询加修改,可以用DBLookupComboBox,你试试,ListSource连接到要选择的数据源,DataSource连接到要修改的数据源。
      

  5.   

    提示一下:

    adoquery的locktype设为ltBatchOptimistic  这样数据在没有update的时候不会提交~~
    楼主说的不太明白,看得头晕