遇到一个怪问题,有tab1,tab2,tab3三个表,
如果sql = "select *  from tab1,tab2 where tab1.f1 = tab2.f1 "
rs.Open sql, cn, adOpenKeyset, adLockOptimistic
就ok
如果sql = "select *  from tab1,tab3 "也没问题
可是如果
sql = "select *  from tab1,tab3 where tab1.f1 = tab3.f1 "
就会出现"对象   'Open'   方法   '_RecordSet'   失败 "
语句在Access里已经试过,没有问题,cn.execute的方法也试过,不行.希望大家帮帮忙吧!

解决方案 »

  1.   

    ACCESS这样写好像是不行的
    你把语句在ACCESS中执行一下,试试
    ACCESS的语句和SQL的语句,大体一样,但是需要在参数上加一些'或者是"才可以用
      

  2.   

    这个语句在access里是完全可以通过的,但是在VB里却有问题,前面还有好几个类似的sql都可以,就是到这句就卡住了.
    实在是搞不懂啊!
      

  3.   

    sql = "select *  from tab1,tab2 where tab1.f1 = tab2.f1 "debug.print sql然后看这句sql是否正确,然后去ACCESS中执行看看
      

  4.   

    有时候你把整个SQL语句删掉
    然后重新手写一遍就好了
    曾经碰到过
      

  5.   

    我晕死了,看了以前的帖子,只要是把第一个字段加上方括号就好了,例如[a.f1],原来是a.f1.
    但是原理我一点也不知道,谁明白的话给大家讲讲吧,估计还有人和我一样困惑呢.
      

  6.   

    呵呵比如: 你的表里有这样的字段名称 memo
    就不行,就一定要加入[]才行的
      

  7.   

    是"关键字"的原因么?呵呵,可是我的那个字段叫"MODUNO"啊