if ADOQuery1.RecordCount>0then
   begin
     SqlStr:='update UserTab set PassWord='+Quotedstr(PassWordStr)'where UserName='+Quotedstr(UserNameStr);
              ADOQuery1.Close;
              ADOQuery1.SQL.Clear;
              ADOQuery1.SQL.Add(SqlStr);
              ADOQuery1.ExecSQL;
              MessageBox(MMXGFrm.Handle,'密码修改成功!','用户密码提示',MB_OK+MB_ICONINFORMATION);
            end
上面这段代码在如果是连上SQL SERVER2000就可以正确修改 但连上ACCESS数据库是提示UPDATE语句的语法错误!
请各位指教是什么原因?

解决方案 »

  1.   

    SqlStr:='update UserTab set [PassWord]='+Quotedstr(PassWordStr)'where [UserName]='+Quotedstr(UserNameStr);access把password和username当作保留字了。
    这是因为access和sqlserver的保留字不同,以后其名字避免这些词,好的建议是增加一个前缀,比如d_password,d_username 就不会这么麻烦了。
      

  2.   

    主要是因为Access数据库和SQLServer对SQL语句数据类型识别还是有差别的。
      

  3.   

    SqlStr:='update UserTab set PassWord="'
            +Quotedstr(PassWordStr)
            +'" where UserName="'
            +Quotedstr(UserNameStr)
            +'"';
    试试看。
    你的整个语句中少了一个加号,并且where前少了一个空格,不知是否是笔误?
      

  4.   

    pazee(耙子) 回答的正确 给分