我建立了2个数据表’renyuan’,’bumen’其中’renyuan’有zgbh,zgname,bumenno(所在部门编号),’bumen’有bumenno,bumenname.用户在查询员工信息时只要输入相关部门,系统将自动将renyuan表中符合条件的记录显示出来,但其中bumenno为编号,不很直观,该如何写语句使系统在显示的时候不显示bumenno,而是根据bumenname。我写了如下语句,???号处通不过:   with datamodule2.bumentable do
   begin
      active:=true;
      locate('bumenname',combobox1.Text,[lopartialkey]);
      bumenno1:=datamodule2.bumentable.fieldbyname('bumenno').asstring;
   end;
   with datamodule2.renyuantable do
   begin
   active:=true;
   dbgrid1.DataSource:=datamodule2.queryDS;
   end;
   with datamodule2.Query1 do
   begin
   databasename:='laobao';
   datasource:=datamodule2.renyuands;
   close;
   sql.Clear;
   ???z:='select renyuan.zhigongno as 职工编号,renyuan.zhigongname as 职工姓名,renyuan.xingbie as 性别,gongzhong.gongzhongname as 工种 where renyuan.bumenno='+bumenno1+'and renyuan.gongzhongno=gongzhong.gongzhongno';
   sql.add(z);
   open;

解决方案 »

  1.   

    ???z:='select renyuan.zhigongno as 职工编号,renyuan.zhigongname as 职工姓名,renyuan.xingbie as 性别,gongzhong.gongzhongname as 工种 where renyuan.bumenno='+bumenno1+'and renyuan.gongzhongno=gongzhong.gongzhongno';少了From语句了
      

  2.   

    z:='select renyuan.zhigongno as 职工编号,renyuan.zhigongname as 职工姓名,renyuan.xingbie as 性别,gongzhong.gongzhongname as 工种 where renyuan.bumenno='''+bumenno1+'''  and renyuan.gongzhongno=gongzhong.gongzhongno';
      

  3.   

    作了如下修改,系统编译通过,但是运行出错'type mismatch in expression')
    sql.add('select renyuan.zhigongno,renyuan.zhigongname,renyuan.xingbie,gongzhong.gongzhongname from renyuan,gongzhong');
       sql.add('where renyuan.bumenno='+bumenno1+'and renyuan.gongzhongno=gongzhong.gongzhongno');
      

  4.   

    找到问题了,gongzhongno字段在两个表建立时的属性一个为‘s',一个为'a',不好意思,不好意思