各位大侠,有问题请教,帮帮小弟。
我是用delphi7连接access数据库,想把一个表中的某一列“对号入座”到另一个表中的对应列,但是总是报错。代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
With ADOQuery1 do
begin 
Close; 
SQL.Clear;
SQL.Add(' Update table1,table2 Set table1.zhangfu = table2.zhangfu ');
SQL.Add(' Where (table1.A = table2.A) and (table1.B = table2.B)');
ExecSQL;
end;
end;报错
语法错误(操作符丢失)在查询表达式'table2.zhangfu'中。

解决方案 »

  1.   

    With ADOQuery1 do
    begin 
    Close; 
    SQL.Clear;
    SQL.Add(' Update table1 Set table1.zhangfu = ( ');
    SQL.Add(' select table2.zhangfu from table2 Where (table1.A = table2.A) and (table1.B = table2.B))');
    ExecSQL;
    end;
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    With ADOQuery1 do
    begin 
    Close; 
    SQL.Clear;
    SQL.Add(' Update a set a.zhangfu=b.zhangfu from table1 a,table2 b where a.A=b.A and a.B=b.B');
    ExecSQL;
    end;
    end;
      

  3.   

    UPDATE table1
    SET    zhangfu = a.zhangfu
    FROM   table2 a
           INNER JOIN table1 b
             ON a.a = b.a
                AND a.b = b.b
      

  4.   

    仍然报错
    语法错误(操作符丢失)在查询表达式'select table2.zhangfu from table2 Where (table1.A = table2.A) and (table1.B = table2.B))'中。
      

  5.   

    a.a = b.a是什么啊!
    是两个表相关联的字段呀。
      

  6.   

    你这2个相加是不是table2.A=zhangfu跟where条件是不是没有空格?你把这个语句用MEMO弄出来直接数据库运行一下试试看
      

  7.   

    用一句sql从一个表里面取出数据来更新另外一个表里面对应的值:
    update table1,table2 set table1.column1=table2.column1 where table1.column2=table2.column2语法错误(操作符丢失)在查询表达式‘table2.column1’中。
      

  8.   

    showmessage(sql.text);
    显示出来,或者放进memo1中
    memo1.lines.add(sql.text);
    然后你去检查一下是不是缺少空格,缺少符号什么的应该就能检查出来
      

  9.   

    问题是,还没到showmessage(sql.text);,就报错了。
      

  10.   

     在access中执行 sql语句,也是报这个错。