sql="select * from stu where name='"+xingming.text+"' and num='"+xuehao.text+"'"
conn.excute(sql)可以运行
多加个 and  就不行呀
sql="select * from stu where name='"+xingming.text+"' and num='"+xuehao.text+"' and beizu='"+beizu.text+"'"
conn.excute(sql)
就不带行 
字段都是字符型的
提示错误建立recordset失败

解决方案 »

  1.   

    open 和 excute 有那些区别~~谢谢
      

  2.   

    执行非SELECT的SQL语句,方法Dim conn As New ADODB.Connection
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\dbname.mdb;Persist Security Info=False"
    conn.Open
    conn.Execute "insert into tablename(字段1,字段2,字段3) value(值1,值2,值3)"
    conn.Execute "delete from tablename where 字段1='条件'"
    conn.Execute "update tablename set 字段1=值1 where 字段2='条件'"
    conn.Close执行SELECT 的方法,返回一个记录集Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim sql As Stringsql = "select * from tablename"
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="=" + App.Path + "\dbname.mdb;Persist Security Info=False"
    conn.Open
    rs.Open sql, conn, adOpenKeyset, adLockOptimisticSet DataGrid1.DataSource = rs
    '如果想看到查询结果的话就添加一个DATAGRID,并连接到打开的记录集上看清楚了么,conn.excute(sql)是不返回记录集的,但recordset是返回记录集的,所以conn.excute(sql)是执行非SELECT的SQL语句用的
      

  3.   

    set rs=conn.excute(sql)
    这种应该是返回记录集的哦
      

  4.   

    可能是在于你所连接的数据库的类型,有些数据库不支持稍微复杂一点的SQL语句,你可以查看一下这个数据库的相关说明
      

  5.   

    这个查询语句应该算不上复杂呀。不过真的很奇怪,你要注意以下几个问题:
      1。确定你的SQL语句是否有错。把你这条语句放到数据库里执行一遍,看是否正确。
      2。记录集是否重新定义。
      

  6.   

    open 是用来查询语句的
    excute 是用来进行增加、删除、更新操作的
      

  7.   

    xuxiongjun(阿军) 说的很正确,楼主应该明白了!