If rst.RecordCount > 0 Then     ’这是错误的地方
        right = Trim(rst.Fields(0))
         rst.Close
         Else
         msg = MsgBox("没有用户信息")
         Exit Sub
         End If

解决方案 »

  1.   

    代码很乱!
    msg重复定义!
    变量名不规范.
    数据库连接条理不清晰.
    实在是不好看.
      

  2.   

    right = Trim(rst.Fields(0)) '这句有问题
    --------------------------------
    right 是VB函数,不能作为变量名使用,将right换个其它名字,比如my_right、rgt什么的都行
      

  3.   

    Dim SQL As String 
    Dim msg As String 
    Private Sub Form_Load() 
            Dim rst As ADODB.Recordset 
            Dim right As String 
            Dim sTokens() As String 
            Dim msg As String 
            '查找权限 
            SQL = "select 权限 from 用户信息表 where 用户ID='" & UserID & "'" 
            Set rst = SelectSQL(SQL, msg) 
            If rst.eof=false Then 
            right = Trim(rst.Fields(0)) 
            rst.Close 
            Else 
            msg = MsgBox("没有用户信息") 
            Exit Sub 
            End If 
            '设置权限 
            机构设置.Enabled = InStr(right, "机构设置")