请问在登录窗口中怎么根据用户名的不同,判断哪些菜单能用,哪些菜单不能用?

解决方案 »

  1.   

    select case log.text
      case "狗"
        frmMain.numFile.Enable=False
      case "猫"
       frmMain.numFile.Enable=True
    end select
      

  2.   

    将用户名定义为全局变量
    在form_load事件中
    写入如果用户名不等于你所设定的值
    可用楼上的方法解决
      

  3.   

    如果你想把自己的程序做成活的,可以由用户自己设置权限的话,就要把它写到数据库中.
    该表可以由用户名以及各个菜单项的名称组成.用户可先设一个由用户设置权限的窗体,保存到库中,若赋予了相应的权限存为"1",无此权限为"0".然后,在form_load 中按照登录者的用户名到此表中相应的对照,读出数据,值为"1"的菜单项,enabled=true,值为"0"的,enabeld=false.
      

  4.   

    可以使用API函数,将各用户的权限表存储在一个.INI文件中,每次载入窗体时判断各用户的参数值,符合某一用户的参数则取出来使用并设置菜单
      

  5.   

    下面给出示例:
    Option Explicit
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
                            "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
                             ByVal lpKeyName As Any, ByVal lpString As Any, _
                             ByVal lpFileName As String) As Long
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
                            "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
                             ByVal lpKeyName As Any, ByVal lpDefault As String, _
                             ByVal lpReturnedString As String, ByVal nSize As Long, _
                             ByVal lpFileName As String) As LongPublic Sub SetIni(Strkey As String, Stritem As String, Str As Variant)
       '文件写入函数 '[strkey]为小节名称、stritem= 为项名或条目名、 buff为写入的值
       Dim lngX As Long
       Dim buff As String * 128
       
       buff = Str & Chr(0)
       lngX = WritePrivateProfileString(Strkey, Stritem, buff, App.Path & "\WorkDiary.ini")
    End SubPublic Function GetIni(Strkey As String, Stritem As String) As String
       '取得初始信息的子过程 '[strkey]小节名称、stritem= 要取得地项名或条目名的值
       Dim lngX As Long, intX As Integer
       Dim buff As String * 128
       
       Call GetPrivateProfileString(Strkey, Stritem, "", buff, 128, App.Path & "\WorkDiary.ini")
       intX = InStr(buff, Chr(0))
       GetIni = Trim(Left(buff, intX - 1))
       '返回字串
    End Function使用时:
    在退出时存储ini参数值
       SetIni "UserA", "cmdOKChecked", cmdOK.Checked
    启动时取出ini参数值:
       cmdOK.checked = getini ("UserA","cmdOKchecked")