Buenas Tardes Quiero crear un botón en un formulario de access para abrir un informe, pero no quiero abrior siempre el mismo informe, quiero que me pregunte cual es el informe que quiero abrir, ¿me puede ayudar por favor?
1 Respuesta
Respuesta de fernijon
1
1
fernijon, Profesor de Universidad politecnica de catalunya
Te explico cómo tengo solucionado el tema: Primero: debes hacerte con un tabla de informes, es decir, hacerte con un tabla donde se indiquen los informes que hay en la aplicación. No es necesario hacerlo, ya que ésta tabla existe, aunque oculta. La tabla se llama MSysObjects y no se debe modificar bajo ninguna circunstancia!. Para ver la tabla, debes habilitar la vista de tablas ocultas (menú herramientas --> opciones --> ver --> objetos ocultos y objetos del sistema). Veras las tablas (NO LAS TOQUES!). Crea una consulta (p.e. Lista de informes) con los siguientes parámetros : SELECT MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.Name) Not Like "~*") AND ((MSysObjects.Type)=-32764) AND ((MSysObjects.Flags)=0)) ORDER BY MSysObjects.Name; Al ejecutar ésta consulta, debe salir los nombres de los informes. Una vez tienes los informes, lo demás es más sencillo: Hazte en un nuevo formulario o donde tú lo desees un comboBox o un ListBox con el resultado de ésta consulta como origen de datos del control. En el control del combo box o list box y en la propiedad de origen pones la consulta creada. Luego un botón o un código de evento que ejecute el informe : Dim stDocName As String stDocName = Me.combobox ###Es el valor del combo box o list box que has seleccionado### If stDocName = "" Then valor = MsgBox("No se ha seleccionado ningún informe", vbExclamation) Else DoCmd.OpenReport stDocName, acViewPreview End If