1    sql = "select * from xfc,xfd where xfc.楼号=xfd.楼号"
2    rs.Open sql, con, 3, 3, 2
3    rs("姓名") = name
4    rs("已住数") = rs("已住数") + 1
5    rs.Update
     
其中“已住数”为表 xfd 中字段,“姓名”为表  xfc  中字段。    错误提示为:“[SQL SERVER]在关键字"select"附近有语法错误。当把第一行改为:
sql="select * from xfc inner join  xfd on xfc.楼号=xfd.楼号"后,出错行指向第第2行,错误提示为:
    
     “变量或者类型不正确,或者不在可接爱的范围之内,要不就与其他数据冲突。” 

解决方案 »

  1.   

    con.execute " update xfd set 已住数=已住数+1 from xfc,xfd where xfc.楼号=xfd.楼号 "
      

  2.   

    因为不只有一条记录符合条件,而用UPDATE会把所有符合条件的记录改成一样的。我需要对符合条件的记录一条条的修改成不同的值。
      

  3.   

    1    sql = "select * from xfc,xfd where xfc.楼号=xfd.楼号"
    其中“已住数”为表 xfd 中字段,“姓名”为表  xfc  中字段。
    xfd和xfc是一对多关系
    应分别更改和新增
      

  4.   

    你这种情况应该只能用in子句打开相应的记录,比如:
    select * from xfc where 楼号 in (select 楼号 from xfd)
      

  5.   

    赞成Leftie(左手,为人民币服务),用UPDATE语句 
      

  6.   

    TO :vbman2003(家人) 按照你说的写,也提示“select语句附近有错误。”
      

  7.   

    rs.open sql con,3,3,2
    这句为什么不能用SQL语句,我看到资料上介绍是可以的。如果改为rs.open 表名 con,3,3,2这句就没错误?还有rs.open不能同时打开两个表吗??望各位大侠指教!!!
      

  8.   

    rs.open可以用SQL语句返回二个表或多个表的相关数据,但是这个记录集不能用rs.Update来更新。你的问题如applekiller() 说的要打开二个记录集分别更新。提示“select语句附近有错误。”是不是你的字段名称用了数据库关健字?
      

  9.   

    你的select语句有问题, 建议你这样写:
    sql = "select xfc.姓名,xfd.已住数,... from xfc,xfd where xfc.楼号=xfd.楼号"这样改完后,一下的语句就知道更新哪个字段了.
        rs.Open sql, con, 3, 3, 2
    3    rs("姓名") = name
    4    rs("已住数") = rs("已住数") + 1
    5    rs.Update
      

  10.   

    TO:ziqing_1_2_3(子清)我试过了,按你说的那样子写的话,会提示:[SQL SERVER]在关键字"select"附近有语法错误。
      

  11.   

    我这么写过没问题的,你把每列名前都加上表名
    select xfc.姓名,xfd.已住数,xfc.*,xfd.*,xfc.*where    "
      

  12.   

    为什么??????????
    rs.open 的第一个参数为SQL语句时总是报错:“SELECT 语名附近有语法错误”可以肯定的是SQL语句没问题,因为此SQL语句在SQL数据库中执行时通过。                         不明白啊!!!!!!?????
      

  13.   

    加上[]号
    看看楼号是不是有null值
      

  14.   

    没有,楼号不是空值的。RS.OPEN 后为第一个参数为嘛不能为 SQL  语句呢
      

  15.   

    sq = "select * from yang order by num"
    rs.Open sq, con, 3, 3, 2这个语句有什么问题呢!?为嘛总是提示"SELECT语句附近语法错误呢".
      

  16.   

    rs.Open sq, con, 3, 3, 2应该改成
    rs.Open sq, con, 3, 3, 1不知道你从哪里抄的代码,标准写法如下:
    rst.Open sql, cnn, adOpenKeyset, adLockOptimistic, adCmdText