none
COMO PARAMETRIZAR UN MENU DE UN FORMULARIO MDI PRINCIPAL RRS feed

  • Pregunta

  • Hola a todos como puedo parametrizar un menu de un formulario MDI principal lo que e hecho hasta ahora es crear una tabla menu en access y poner todas las pestañas del menu con sus respectivos sub menu pero como lo hago con el codigo vb6 lo que quiero hacer es que me salgan visibles algunas pestañas del menu del formulario principal deacuerdo como se loguee como administrador ,usuario,contador,gerente,vendedor. Por favor si tienen un ejemplo o me puedan ayudar de alguna manera se los agradecere.

     

    Pedro.

    lunes, 17 de enero de 2011 22:00

Todas las respuestas

  • Lo mas sencillo es tener los menues en visible=false en el mdi con un codigo en el tag o el helpindex y al leer los datos de la base buscar ese menu por el tag o indice y darle la propiedad visible en true.

    lunes, 17 de enero de 2011 23:03
  • Tengo este codigo en un modulo que opinas.

    Public cnxMDB As New ADODB.Connection

    Public Sub main()
         cnxMDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Administracion.mdb;Persist Security Info=False", "Admin"
    End Sub

    Public Sub CargarMenu(Perfil As String, frm As Object)
       Dim rs As New ADODB.Recordset
       'ocultando los menus principales
       rs.Open "SELECT * FROM tblMenus WHILE Nivel=1 AND Vendido='N'"
       Do While Not rs.EOF
         
         
          rs.MoveNext
       Loop
       rs.Close
      
       'ocultando los sub menus
       rs.Open "SELECT * FROM tblMenus WHILE Nivel=2 AND Vendido='S'"
       Do While Not rs.EOF
         
         
         
          rs.MoveNext
       Loop
       rs.Close
      
      
      
      
     '     If Perfil = 1 Then
     '        If rs!Vendido = "S" Then
     '
     '        End If
     '     End If
    End Sub

    lunes, 17 de enero de 2011 23:45
  • Hola Luis como construyo el codigo que me explicas con el tag o el index . 

     

     

    martes, 18 de enero de 2011 15:36
  • Hola Pedro, te pregunto: ¿las opciones del menú principal son fijas? Por momentos se me ocurre el de hacer un menú dinámico tipo web, el cual llena un cuadro de lista dinámicamente (submenú), según la selección del usuario. Este cuadro de lista se desplazaría según la posición del puntero del mouse. No lo he probado en Microsoft Visual Basic pero no veo el por què no funcione...eso si, tienes que investigar, por aqui te echaremos una mano. Cordialmente, Carlos.
    martes, 18 de enero de 2011 17:33
  • Pedro y si simplemente creas un menú y activas/desactivas opciones? sin complicaciones

    Mira esto:

    http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/363-cargar-menu-dinamico-usando-ado.htm

    martes, 18 de enero de 2011 17:46
  • Hola si los menus principales y sub menu son fijos lo que quiero hacer es que cuando se logueen los usuarios ya sean administrador, contador, vendedor se activen los menus deacuerdo al perfil todo el menu lo he puesto en una tabla en una db para poder trabajar con codigo:

    Public cnxMDB As New ADODB.Connection

    Public Sub main()
         cnxMDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Administracion.mdb;Persist Security Info=False", "Admin"
         MDIPrincipal.Show
    End Sub

    Public Sub CargarMenu(Perfil As String, frm As Object)
       Dim rs As New ADODB.Recordset
       'ocultando los menus principales
       rs.Open "SELECT * FROM tblMenus WHERE Nivel=1 AND Vendido='N'", cnxMDB, adOpenStatic, adLockOptimistic
       Do While Not rs.EOF
          If rs!Nombre = "mnuContabilidad" Then
            MDIPrincipal.mnuContabilidad.Item(10).Visible = False
          ElseIf rs!Nombre = "mnuBanco" Then
            MDIPrincipal.mnuBanco.Item(9).Visible = False
          ElseIf rs!Nombre = "mnuGastos" Then
            MDIPrincipal.mnuGastos.Item(7).Visible = False
          ElseIf rs!Nombre = "mnuPedidosCliente" Then
            MDIPrincipal.mnuPedidosCliente.Item(1).Visible = False
          End If
          rs.MoveNext
       Loop
       rs.Close
      
      
       'ocultando los sub menus
    '   rs.Open "SELECT * FROM tblMenus WHERE Nivel=2 AND Vendido='S'", cnxMDB, adOpenStatic, adLockOptimistic
    '   Do While Not rs.EOF
    '
    '
    '
    '      rs.MoveNext
    '   Loop
    '   rs.Close
      
      
      
      
     '     If Perfil = 1 Then
     '        If rs!Vendido = "S" Then
     '
     '        End If
     '     End If
    End Sub

    este es mi codigo

    martes, 18 de enero de 2011 22:46
  • Yo recorreria los menues

    dim menu as control

    for each menu in  me.controls

    rs.movefirst

    rs.find "Nombre=" & menu.name

    if not rs.eof then

      menu.visible=true

    endif

    next

    martes, 18 de enero de 2011 23:25