¿Como hacer que un informe en PDF, se cree con contraseña tomando esta, de un campo de una tabla?

Tengo una tabla con nombres de estudiantes, un campo se denomina "Matrícula" y es el campo que requiero sea considerado para generar la contraseña de acceso al informe.

En otras palabras, sería agregar una contraseña personalizada para abrir el informe.

2 Respuestas

Respuesta
2

Pruebe con una impresora virtual, por ejemplo, "Adobe PDF"

Le dejo el código

Sub GenerarInformePDFConContraseña()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim reporte As Report
    Dim pdfFileName As String
    Dim contraseña As String
    ' Ruta y nombre de archivo para el PDF
    pdfFileName = "C:\Ruta\Informe.pdf"
    ' Contraseña para el PDF (tomada del campo "Matrícula")
    strSQL = "SELECT Matrícula FROM TuTabla"
    Set db = CurrentDb
    Set rs = db.OpenRecordset(strSQL)
    ' Comprobar si se encontró un registro
    If Not rs.EOF Then
        ' Obtener el valor del campo Matrícula
        contraseña = rs("Matrícula")
        ' Crear el objeto del informe
        Set reporte = Reports("NombreDeTuInforme")
        ' Exportar el informe a PDF utilizando la impresora virtual de Adobe PDF
        DoCmd.OpenReport reporte.Name, acViewNormal
        ' Esperar a que se cargue el informe
        Do While reporte.Loading
            DoEvents
        Loop
        ' Establecer la contraseña en la impresora virtual de Adobe PDF
        Application.Printer = Application.Printers("Adobe PDF")
        Application.Printer.PaperSize = acPRPSLegal
        Application.Printer.PaperBin = acPRBNAuto
        Application.Printer.PlotToDevice = False
        Application.Printer.PromptForAdobePDFFileName = False
        Application.Printer.PrintQuality = acPRPQHigh
        Application.Printer.Password = contraseña
        ' Imprimir el informe en formato PDF
        DoCmd.PrintOut acPrintAll, , , acHigh, , True
        ' Cerrar el informe
        DoCmd. Close acReport, reporte. Name
        ' Restaurar la impresora predeterminada
        Application.Printer = Nothing
        ' Cerrar y liberar recursos
        Rs. Close
        Set rs = Nothing
        Set db = Nothing
        MsgBox "El informe en formato PDF se ha creado con contraseña."
    Else
        MsgBox "No se encontraron registros en la tabla."
    End If
End Sub

Reemplace "TuTabla" con el nombre correcto de su tabla y "NombreDeTuInforme" con el nombre del informe que desea exportar. Además, necesitará tener la impresora virtual "Adobe PDF" instalada en tu sistema.

En este código el informe se abre en vista normal y se configura la impresora virtual "Adobe PDF" como la impresora activa. Se establece la contraseña utilizando la propiedad Password de la impresora virtual antes de imprimir el informe como PDF. Luego, se restaura la impresora predeterminada.

Tenga en cuenta que la disponibilidad y el comportamiento de las impresoras virtuales pueden variar según la configuración de su sistema y las aplicaciones instaladas. Asegúrese de ajustar el código según tus necesidades y el entorno específico en el que esté trabajando.

Esta es una idea.

Respuesta

Esa opción (creo que) solo esta disponible con la licencia profesional de Acrobat, si se utiliza otra aplicación para crear los Pdfs (hay muchas independientes), habrá que consultar sus ayuda para saber si tienen la opción (y si lo permiten, ya que pudiera tener un costo añadido).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas