我用的是ACCess数据库和DELPHI 6
在数据库里我用字母定义,如id 代表员工工号,name 代表姓名
我在查询窗口中使用了adoquery 扩dbgride  及combobox 等控件
我在控件combobox 里面输入了中文的工号,姓名等查询字段
我定义了一个数组,把这几个要查询的字段用数组来保存.
s[i]:=combobox1.items[i];
然后再把数据库的值赋给数组,但出现问题
s[0]:=adoquery1.fieldvalues['id']
showmessage(s[0])
s[0]所显示出来的是第一条记录的工号
查询出错,这里要怎么写才能把数据库中的字段赋给我要查询的中文字段啊,
怎样才能显示我要查询的东西
我要查询的是有选择性的而不是查询数据库中的所有字段,

解决方案 »

  1.   

    s[0]:=adoquery1.fieldvalues['id']
    showmessage(s[0])
    S[0]里的就是fieldvalues['id'].显示的当然是工号了.s[0]:=adoquery1.fieldvalues['name']
    showmessage(s[0])
    就是姓名..
    你想显示哪个就把哪个Select 出来不就行了啊
      

  2.   

    我是这样做的,用了两个列表框,列表框1是中文的字段,列表框2是与此对应的英文字段
    先在列表框1中把中文字段输入好,
    然后再用把数据表中的字段添加到列表框2中,var i:integer;
    begin
       for i:=0 to adoquery1.FieldCount-1 do
         combobox1.Items.Add(adoquery1.Fields[i].FieldName);最重要的是让列表框1中的字段与列表框2中的字段同步
    在列表框中的change事件中写上
    combobox2.ItemIndex:=combobox1.ItemIndex;然后就好做了。
    var
      Sqlstr:string;
    begin
      sqlstr:='select * from table1 where id='''+combobox2.text+''' ';
      ........
    end;呵呵。
      

  3.   

    to无名的风
    var i:integer;
    begin
       for i:=0 to adoquery1.FieldCount-1 do
         combobox1.Items.Add(adoquery1.Fields[i].FieldName);
    你那样是把数据库中的所以的字段都显示出来的,但我要的结果是我只想查询
    数据库中的某些字段,如工呈或姓名
      

  4.   

    to sxj2003(sxj2003) 我的QQ是178625302
    有空可以加我的。我一般都在线。呵呵。