下面代码那里错了啊,运行时“rst.Open strsqlstmt”这一行提示: 
“无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。” Public Sub sqlext(ByVal strsqlstmt As String) '执行数据库操作
Dim cmd As New ADODB.Command
connect
Set cmd.ActiveConnection = cnn
cmd.CommandText = strsqlstmt
cmd.Execute
Set cmd = Nothing
disconnect
End Sub
Public Function queryext(ByVal strsqlstmt As String) As ADODB.Recordset '执行数据库查询
Dim rst As New ADODB.Recordset
connect
Set rst.ActiveConnection = cnn
rst.CursorType = adOpenDynamic
rst.LockType = adLockOptimistic
rst.Open strsqlstmt
Set queryext = rst
End Function麻烦各位了

解决方案 »

  1.   

    你最起码得把变量strsqlstmt 的值给出来,才能帮你看什么原因
      

  2.   

    这段代码我是根据书上的
    rst.open strsqlstmt上面只写着打开记录集
    只知道ByVal strsqlstmt As String
    而且strsqlstmt只出现在Public Sub sqlext(ByVal strsqlstmt As String)和Public Function queryext(ByVal strsqlstmt As String) As ADODB.Recordset这两个里面
    那该如何定义strsqlstmt变量
      

  3.   

    试试select * from 表名
      

  4.   

    比如说先执行strsqlstmt = "select * from 用户信息表"
      

  5.   


    写了以上代码后,在clsuser.cls中又出错了
    Public Function getinfo(ByVal username As String) As Boolean '定义记录集对象变量
    Dim rs As New ADODB.Recordset
    strname = username
    strsql = "select*from [用户登录] where name+'" + Trim(username) = "'"
    Set rs.EOF = queryext(strsql)
    If rs.EOF Then
    init
    getinfo = False
    Exit Function
    Else
    strpwd = Trim(rs.Fields(1))
    iuserclass = rs.Fields(2)
    getinfo = True
    End If
    End Function
    提示我说编译错误,属性的使用无效
    这又该怎么办?
      

  6.   

    哈哈,不好意思,看错了代码了,谢谢bcrun