Informe en access

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?

2 respuestas

Respuesta
1
Te explico cómo hacer lo que pides.
En vista diseño, das click con el botón de la derecha sobre el botón que comentas, seleccionas la opción "Generar evento..." y en la pantalla que se sale le dices que quieres generar código.
En la nueva pantalla que te sale escribes el siguiente código:
---
Private Sub Comando10_Click()
On Error GoTo sol_err
    Dim nomReport As Variant
    nomReport = InputBox("¿Nombre del informe?", "INFORME", "...")
        'Si se pulsa el botón cancelar salimos
    If StrPtr(nomReport) = 0 Then Exit Sub
        'Abre el informe en vista previa. Si lo quieres directamente
'a la impresora debes cambia acViewPreview por acViewNormal
    DoCmd.OpenReport nomReport, acViewPreview
salgo_Exit:
    Exit Sub
sol_err:
    MsgBox "No se ha encontrado el informe solicitado"
    Resume salgo_Exit
End Sub
---
Y ya está ;)
Ya me dirás cómo te ha ido.
No he tenido noticias tuyas. ¿Te ha ido bien lo que te comentaba?
Ya me dirás.
Me sirvió mucho muchas gracias experto, ¿ahora le puedo hacer otra pregunta?, resulta que ahora quiero que el usuario de la base pueda borrar un informe, pero no quiero que el usuario entre al explorador donde están todos los elementos, como puedo hacer desde un formulario, ¿la opción que el usuario borre un informque cualquiera?
Muchas gracias
La mecánica es muy parecida al anterior código. Creas un botón donde el usuario pueda hacer click para borrar y a ese botón le pegas el siguiente código:
---
Private Sub Comando0_Click()
On Error GoTo sol_err
    Dim nomReport As Variant
    Dim resp As Integer
    nomReport = InputBox("¿Nombre del informe?", "INFORME", "...")
        'Si se pulsa el botón cancelar salimos
    If StrPtr(nomReport) = 0 Then Exit Sub
        'Solicita una reconfirmación de borrado
    resp = MsgBox("¿Realmente quiere borrar el informe " & _
        nomReport & "?", vbOKCancel + vbCritical, "CONFIRMACIÓN")
            'Si la respuesta es "cancelar" sale del proceso. Si es sí sigue
            'con el procedimiento
        If resp = vbCancel Then Exit Sub
    DoCmd.DeleteObject acReport, nomReport
salgo_Exit:
    Exit Sub
sol_err:
    MsgBox "No se ha encontrado el informe solicitado"
    Resume salgo_Exit
End Sub
---
Ya me dirás cómo te ha ido.
Muchas GRacias Experto Estuvo perfecto, ¿ahora le puedo preguntar algo acerca de seguridad?, cuando creo usuarios ypermisos para una base de datos, si envío este archivo por e mail o lo copio de alguna manera a otro PC, la seguridad parece perderse, ya no me pide contraseñas para usuarios, creo que es porque entra por default como usuario ADministrador, y el otro equipo no tiene contraseña para ese usuario; ¿Existe una forma de crear seguridad y que las eguridad viaje con el archivo?
Lamento la tardanza en contestarte, pero estoy un poco (mucho) liado. Para no tenerte más tiempo sin respuesta te paso un link donde creo que podrás encontrar respuesta a lo que pides, y que además te servirá para ver otras cosas de tema de seguridad en Access (probablemente mejor de lo que te podría explicar yo ;)
El link es http://www.hispavila.com/3ds/office/seguridadaccess.html
Supongo que no tendrás problema para seguirlas explicaciones porque no son demasiado "técnicas".
Espero que te sea de utilidad. Ya me dirás cosas ;)
Respuesta
1
En un cuadro de lista desplegable muestra los nombres de los informes, luego en el botón haces referencia a ese cuador combinado.
Private Sub btnImprimir()
On Error GoTo Err_btnImprimir_Click
    Dim stDocName As String
    stDocName = me.listaInformes
    DoCmd.OpenReport stDocName, acPreview
Exit_btnImprimir_Click:
    Exit Sub
Err_btnImprimir_Click:
    MsgBox Err.Description
    Resume Exit_btnImprimir_Click
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas