Macro Access - Menu Desplegable en Formulario

He investigado no sabes como!... En fin no encuentro la solución, me están solicitando hacer una macro donde haga el ingreso de datos (digamos productos), ademas crear facturas, ver reporte y un manual de como usar dicha Macro, todo lo puedo hacer pero ahora me están pidiendo que haga un MENU HORIZONTAL EN LA PARTE SUPERIOR DE MI FORM, se que te imaginas a que me refiero, quieren que tenga la siguiente estructura:
PRODUCTOS      |   FACTURA      |   REPORTE   |    AYUDA      |   SALIR
Crear Produ.        Crear Fact          Grafico           Manual           Exit
Modifica Prod. Elmina Fact Tablas
Elimina Prod. Modifica Fac
Bueno las letras mayúsculas son los botones principales que al dar clic se desplegaran y podrá verse los datos en minúscula, es decir, si soy clic a PRODUCTOS se vera --> Crear Producto, Modificar Producto, Eliminar Producto, si doy clic a FACTURA --> Crear Factura, Eliminar Factura y Modificar Factura; del mismo modo para los demás.
Mis dudas en si son las siguientes: ¿Cómo consigo este menu y como lo puedo usar? Y ¿Cómo hago los gráficos estadísticos en un Form, gráficos como los que hay en Excel?
Agradeceré muchísimo tu ayuda, ¡OJO! Quieren que lo haga en MACRO DE ACCESS, NO EN OTRA HERRAMIENTA!...

2 Respuestas

Respuesta
Realmente no sabría como hacerlo con Excel, esta opción la conozco en Visual Basic a través de un formulario MDI.
La opción que conozco para Excel es el Treeview que es similar pero es de desplazamiento lateral similar al explorador de windows, pero es necesario comprar la licencia de este objeto a Microsoft
Respuesta
Como esta página está orientada a que todo el mundo tenga un lugar donde consultar las dudas de los demás, es mejor que cada pregunta sea de un tema. Por eso en este hilo te contestaré a lo de los menús, y el resto en otras preguntas.
Supongo que se puede hacer utilizando ActiveX, o la API de Windows o así, pero creo que lo más sencillo es utilizar Visual Basic o macros. Los pasos serían:
a) Crea un formulario vacío.
b) Crea tantos botones de ALTERNAR como menús quieras desplegar. En tu caso 5.
c) Crea cuadros de lista con todas las opciones que tenga cada botón, debajo de los botones. Tienes que establecer en todos la propiedad Permitir Ediciones de Lista=No y escribir los valores que desees: "Crear Produ." "Modifica Produ.", etc...
d) Tienes que hacer que al cargar el formulario (Evento Al Cargar), sólo estén activos los botones y ocultos todos los cuadros de lista.
e) En cada botón, al pulsar (Evento Al hacer Click) tienes que verificar (si pasa de no_pulsado ha pulsado), tiene que desactivar el resto de botones, y darle visibilidad al cuadro de texto que se encuentra debajo de el. Si pasa de pulsado a no_pulsado, tiene que activar todos los demás botones y pasar a no visible el cuadro de texto que tiene debajo de el.
f) En cada cuadro de texto, tienes que hacer que en el evento Al Actualizar, verifique el valor que has escogido, y en función de eso actúe. No te olvides de borrar la opción al final para que no quede seleccionada.
Es sencillo si eres ordenado y paciente. Te copio el código que me resultó a mi, para dos botones (Alternar1 y Alternar2), con dos opciones cada uno, Opcion1 y Opcion2 en Lista3 y Opcion3 y Opcion4 en Lista4.
Un saludo,
Option Compare Database
Private Sub Alternar1_Click()
 If Alternar1 Then
    Alternar2.Enabled = False
    Lista3.Value = ""
    Lista3.Visible = True
 Else
    Alternar2.Enabled = True
    Lista3.Visible = False
End If
End Sub
Private Sub Alternar2_Click()
 If Alternar2 Then
    Alternar1.Enabled = False
    Lista5.Value = ""
    Lista5.Visible = True
 Else
    Alternar1.Enabled = True
    Lista5.Visible = False
End If
End Sub
Private Sub Form_Load()
    Alternar1.Enabled = True
    Alternar2.Enabled = True
    Lista3.Value = ""
    Lista3.Visible = False
    Lista5.Value = ""
    Lista5.Visible = False
End Sub
Private Sub Lista3_AfterUpdate()
 Select Case Lista3.Value
    Case "Opcion1"
        MsgBox "Opcion 1 Escogida"
    Case "Opcion2"
        MsgBox "Opcion 2 Escogida"
 End Select
 Lista3.Value = ""
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas