Dim right As String
Dim sql As String
Dim msg As String
Dim rs4 As ADODB.Recordset
Set rs4 = New ADODB.Recordset
sql = "select 权限 from 用户信息表 where 用户ID='" & userID & "'"
msg = ExecuteSQL(sql, rs4, True)
rs4.Open "select 权限 from 用户信息表 where 用户ID='" & userID & "'", conn, adOpenStatic, adLockOptimistic
If rs4.RecordCount > 0 Then
   right = Trim(rs4.Fields(0))
   
   Else
     MsgBox ("没有用户信息!")
End If
If InStr(right, "职能设置") Then
    Me.Toolbar1.Buttons(1).Enabled = True
    Me.Toolbar1.Buttons(2).Enabled = True
    Else
    Me.Toolbar1.Buttons(1).Enabled = False
    Me.Toolbar1.Buttons(2).Enabled = False
End If
怎么总出现没有用户信息。然后执行下面的if语句时,也是执行Else
    Me.Toolbar1.Buttons(1).Enabled = False
    Me.Toolbar1.Buttons(2).Enabled = False
明明表里面有权限值啊,类型是文本。sql语句也没有问题,就是recordcount的值为0

解决方案 »

  1.   


    '在打开记录集前先对设置rs4.CursorLocation =adUseClient '下面再打开
    rs4.Open "select 权限 from 用户信息表 where 用户ID='" & userID & "'", conn, adOpenStatic, adLockOptimistic 
      

  2.   

    在数据库里执行一下这句sql看看有没有数据
    msg = ExecuteSQL(sql, rs4, True),rs4打开后有没有关闭,有没有用On Error Resume Next这句
      

  3.   

    If Not rs4.EOF Then 
      

  4.   

    你把在查询分析器执行的sql语句发上来看看,把错误也发上来
      

  5.   

    msg = ExecuteSQL(sql, rs4, True)这一句是干什么的?
      

  6.   

    就是执行sql语句啊,返回值赋给msg,这个值没有什么实际意义
      

  7.   

    rs4.CursorLocation =adUseClient rs4.Open "select 权限 from 用户信息表 where 用户ID='" & userID & "'", conn, 1, 1
    你把ExecuteSQL里面的代码发上来看看
      

  8.   

    用户ID='" & userID & "
    是不是因为userID的值没有传过来啊,可是我的userID是定义在模块中的!明明就有值的啊!
      

  9.   

    我调用过EXecuteSQL函数成功过,这段代码没有错误。
      

  10.   

    Public Function ExecuteSQL(ByVal txtsql As String, rst As ADODB.Recordset, ByVal bolTemp As Boolean) As Boolean
        Dim conn As ADODB.Connection
        On Error GoTo execute_Error
        Set conn = New ADODB.Connection
        If conn.State = 1 Then conn.Close
           conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=考勤"
        conn.Open
            rst.Open Trim(txtsql), conn, adOpenStatic, adLockBatchOptimistic
        ExecuteSQL = True
      
        Exit Function
    execute_Error:
        ExecuteSQL = False
    End Function
    你说的不用ExecuteSQL函数。我也试过,还是不行!
      

  11.   


    没有结果自然recordcount=0,查查你的sql语句吧
      

  12.   

    尝试修改连接客串:
    conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=考勤"比如===>conn.ConnectionString = "Provider=sqloledb;Data Source=192.168.0.111;Initial Catalog=考勤;User Id=sa;Password=123;"