在数据库中,建立了一张表,成员为职工号,权限(权限设置为1,2,3,4,5,6,)。
现在想在FORM1(登录页面)判定用户的权限,然后在Form2(菜单),按照权限的不同,使某些 command.enabled = false 
登录界面添加了一个ADO控件,然后可以在Text3 中 显示出权限。进而判断此权限在菜单中哪些command 可用。
判断权限代码:if text3.text= "6" then
command1.enabled = false 
command2.enabled = ture 
"
"
"
end if 
elseif text3.text="5" then 
下面就不写了,不知道问题出在哪,希望大家能够帮帮忙。

解决方案 »

  1.   


    这样的代码这么写累不累啊》?set rs=........
    权限=rs("权限")select case 权限
    case 1case 2case 3case 4case 5case 6end select
    这样既不累,又不容易出错
      

  2.   

    set rs=........
      这个是设置个记录源?????
      

  3.   

    不讨论别的问题,至少基本语句有错:
    if text3.text= "6" then
    ...
    end if  
    elseif text3.text="5" then
    应该是if text3.text= "6" then
    ...
    elseif text3.text="5" then
      

  4.   

    权限=rs("权限")红色,你定义的VB变量
    蓝色,记录集中的权限字段值
      

  5.   

    Private Sub purview()
    Set myrs3 = New ADODB.Recordset
    Text2.Text = myrs3("权限")
    Select Case 权限
      Case "1"
        
        
        Me.Command2.Enabled = False
        Me.Command3.Enabled = False
        Me.Command4.Enabled = False
        Me.Command5.Enabled = False
        Me.Command6.Enabled = False
      Case "2"
        
       
        Me.Command2.Enabled = False
        Me.Command3.Enabled = False
        Me.Command5.Enabled = False
        Me.Command6.Enabled = False
      Case "3"
        
       
        Me.Command2.Enabled = False
        Me.Command3.Enabled = False
        Me.Command4.Enabled = False
        Me.Command5.Enabled = False
      Case "4"
       
         Me.Command1.Enabled = False
         Me.Command2.Enabled = False
         Me.Command3.Enabled = False
         Me.Command6.Enabled = False
       
      Case "5"
        
       
         Me.Command2.Enabled = False
        
      Case "6"
         
        
        
    End Select
    End Sub
    神人,我这改成这样了。然后再 form load里 CALL purview()
    但是还是有错误  你给我解释的关于  权限=rs("权限")我还是没有弄明白。 你帮我看看这段代码怎么改。 我完全迷糊了。 最好你能帮我调一下我的代码。我可以给你发过去。求帮忙 
      

  6.   

    Private Sub purview()
    Set myrs3 = New ADODB.Recordset
    Text2.Text = myrs3("权限") '记录集还没打开,怎么能使用?使用之前必须使用
    'myrs3.open 或者 set myrs3=cnn.execut....将记录集打开dim 权限 as long  '必须添加这两句
    权限= myrs3("权限")
    Select Case 权限
      Case "1"
        
        
      Me.Command2.Enabled = False
      Me.Command3.Enabled = False
      Me.Command4.Enabled = False
      Me.Command5.Enabled = False
      Me.Command6.Enabled = False
      Case "2"
        
        
      Me.Command2.Enabled = False
      Me.Command3.Enabled = False
      Me.Command5.Enabled = False
      Me.Command6.Enabled = False
      Case "3"
        
        
      Me.Command2.Enabled = False
      Me.Command3.Enabled = False
      Me.Command4.Enabled = False
      Me.Command5.Enabled = False
      Case "4"
        
      Me.Command1.Enabled = False
      Me.Command2.Enabled = False
      Me.Command3.Enabled = False
      Me.Command6.Enabled = False
        
      Case "5"
        
        
      Me.Command2.Enabled = False
        
      Case "6"
        
        
        
    End Select
    End Sub
      

  7.   

    Private Sub purview()
    mycon.Close
    Set getrs = MyRs1
    Set MyRs1 = New ADODB.Recordset
    'If MyRs1.State = adStateOpen Then
     ' MyRs1.Close
    'End If
     'MyRs1.Open
    Dim 权限 As String
    Set MyRs1 = getrs("权限")Text2.Text = MyRs1("权限")  '记录集还没打开,怎么能使用?使用之前必须使用
    Select Case 权限
      Case "1"
        
        
       Form20.Command2.Enabled = False
        Form20.Command3.Enabled = False
        Form20.Command4.Enabled = False
        Form20.Command5.Enabled = False
       Form20.Command6.Enabled = False
      Case "2"
        
       
        Form20.Command2.Enabled = False
        Form20.Command3.Enabled = False
        Form20.Command5.Enabled = False
        Form20.Command6.Enabled = False
      Case "3"
        
       
        Form20.Command2.Enabled = False
        Form20.Command3.Enabled = False
        Form20.Command4.Enabled = False
        Form20.Command5.Enabled = False
      Case "4"
       
        Form20.Command1.Enabled = False
        Form20.Command2.Enabled = False
        Form20.Command3.Enabled = False
        Form20.Command6.Enabled = False
       
      Case "5"
        
       
         Form20.Command2.Enabled = False
        
      Case "6"
         
    End Select
    End Sub
    改成这样 提示我错误 在对应所需的列名或叙述的集合中为找到项目。  麻烦大神再帮我看下 万分感谢。
      

  8.   

     getrs("权限")是什么东东?代码贴出来看
      

  9.   

    在登录界面判断用户权限。(用户权限表 成员: 职工号 权限)权限等级设为1,2,3,4,5,6
    在登录界面添加ADO控件,用职工号 密码进行登录时,对当前登录的职工号进行选线判定。。代码如下:
    Dim n As Integer 'n为限制登陆次数的变量
    Private Sub Command1_Click()
    Dim a1 As String
    If Trim(Text1.Text) = "" Then
    MsgBox "请输入用户名", vbExclamation, "注意"
    Text1.SetFocus
    Else
    On Error GoTo Errorhandle
    mycon.ConnectionString = "Driver={SQL Server};Server=ASUS-PC;UID=" & Trim(Text1.Text) & ";pwd =" & Trim(Text2.Text) & ";Datebase=研究所管理"
    mycon.Open
      Form20.Text1.Text = Form2.Text1.Text
    Adodc1.CommandType = adCmdText
    Adodc1.RecordSource = "select * from 系统用户角色表 where 职工号='" & Trim(Text1.Text) & "' " ‘这里是对当前用户的权限进行查找 输出在text3中
    Adodc1.Refresh
    Select Case Text3.Text
     Case "1"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "2"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "3"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Case "4"
      Form20.Command1.Enabled = False
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command6.Enabled = False
      Case "5"
      Form20.Command2.Enabled = False
      Case "6"
      Form20.Command1.Enabled = True
      Form20.Command2.Enabled = True
      Form20.Command3.Enabled = True
      Form20.Command4.Enabled = True
      Form20.Command5.Enabled = True
      Form20.Command6.Enabled = True
    End Select
    Unload Me
    Form20.Show
    我现在想用这种,worldy大神。你以前给我整的那个实在整不出来啊
      

  10.   

    Dim n As Integer 'n为限制登陆次数的变量
    Private Sub Command1_Click()
    Dim a1 As String
    If Trim(Text1.Text) = "" Then
    MsgBox "请输入用户名", vbExclamation, "注意"
    Text1.SetFocus
    Else
    On Error GoTo Errorhandle
    mycon.ConnectionString = "Driver={SQL Server};Server=ASUS-PC;UID=" & Trim(Text1.Text) & ";pwd =" & Trim(Text2.Text) & ";Datebase=研究所管理"
    mycon.Open
      Form20.Text1.Text = Form2.Text1.Text
    Adodc1.CommandType = adCmdText
    Adodc1.RecordSource = "select * from 系统用户角色表 where 职工号='" & Trim(Text1.Text) & "' " ‘这里是对当前用户的权限进行查找 输出在text3中
    Adodc1.Refresh  '此处没有出错吧?那你定义那个MyCon做傻用?'添加
    Text3.Text=adodc1.recordset("权限") '我不知道你的字段名是否叫“权限”如果不是改成你的权限字段名Select Case Text3.Text
     Case "1"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "2"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "3"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Case "4"
      Form20.Command1.Enabled = False
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command6.Enabled = False
      Case "5"
      Form20.Command2.Enabled = False
      Case "6"
      Form20.Command1.Enabled = True
      Form20.Command2.Enabled = True
      Form20.Command3.Enabled = True
      Form20.Command4.Enabled = True
      Form20.Command5.Enabled = True
      Form20.Command6.Enabled = True
    End Select
    Unload Me
    Form20.Show
      

  11.   

    再次呼唤worldy 大神..代码是通过的,但是拿任意权限的账户登录进去。所有功能还是能够使用
      

  12.   

    再次呼唤worldy 大神。 
    代码是没有错误。但是拿任意权限的账号登录进去,所有的功能还是都可用。要不我把我做得东西给你发过去。。你看看。。麻烦你了
      

  13.   

    Dim n As Integer 'n为限制登陆次数的变量
    Private Sub Command1_Click()
    Dim a1 As String
    If Trim(Text1.Text) = "" Then
    MsgBox "请输入用户名", vbExclamation, "注意"
    Text1.SetFocus
    Else
    On Error GoTo Errorhandle
    mycon.ConnectionString = "Driver={SQL Server};Server=ASUS-PC;UID=" & Trim(Text1.Text) & ";pwd =" & Trim(Text2.Text) & ";Datebase=研究所管理"
    mycon.Open
      Form20.Text1.Text = Form2.Text1.Text
    Adodc1.CommandType = adCmdText
    Adodc1.RecordSource = "select * from 系统用户角色表 where 职工号='" & Trim(Text1.Text) & "' " ‘这里是对当前用户的权限进行查找 输出在text3中
    Adodc1.Refresh '此处没有出错吧?那你定义那个MyCon做傻用?'添加
    Text3.Text=adodc1.recordset("权限") '我不知道你的字段名是否叫“权限”如果不是改成你的权限字段名debug text3 '加入此,然后用不能账号,检查打印的值是否不一样
    Select Case Text3.Text
     Case "1"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "2"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command5.Enabled = False
      Form20.Command6.Enabled = False
      Case "3"
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command4.Enabled = False
      Form20.Command5.Enabled = False
      Case "4"
      Form20.Command1.Enabled = False
      Form20.Command2.Enabled = False
      Form20.Command3.Enabled = False
      Form20.Command6.Enabled = False
      Case "5"
      Form20.Command2.Enabled = False
      Case "6"
      Form20.Command1.Enabled = True
      Form20.Command2.Enabled = True
      Form20.Command3.Enabled = True
      Form20.Command4.Enabled = True
      Form20.Command5.Enabled = True
      Form20.Command6.Enabled = True
    End Select
    Unload Me
    Form20.Show
      

  14.   

    debug.print text3 '加入此,然后用不能账号,检查打印的值是否不一样少了个print
      

  15.   

    debug了下,和权限值都能对应上。。
      

  16.   

    conmmand1,2,3,4,5,6.在每个case里面都明确指明
      

  17.   

    试了下,都致命是true 或者false 都不行。
    Private Sub Command8_Click()
    Label8.Caption = Now()
    MsgBox "出勤成功"
    Command8.Enabled = FalseEnd Sub
    这是我做的一个出勤按钮,只能点一次。点完就不能再点。能有什么启发么。worldy大神。。咱爱你