Hipervínculo y generar pdf

Estoy haciendo una base de datos en access 2003 y tengo alguna duda, te agradecería tu ayuda, te comento el caso
Hipervínculo
Quiero unir un documento pdf a un registro de Access,
El documento pdf se llama igual que el campo "ref" de una tabla de Access
Mi idea era crea un nuevo campo en esa misma tabla "hipervínculo" y que la ruta fuese esa
Hay manera de escribir la ruta automáticamente,
Todos los archivos están en la misma carpeta
Probando genere un listado en excel con la ruta y lo pegue en la tabla en el campo hipervínculo, y me relleno este campo correctamente pero en "texto de hipervínculo" no en la ruta, hay manera de que lo que escriba en el campo me lo escriba en la ruta y no en texto a mostrar
Generar pdf
Relacionado con lo mismo para generar los pdfs lo hago a partir de un informe y cada página del informe corresponde a un campo "ref" distinto ahora tengo una macro que me crea a partir del pdf creator un pdf por cada página, pero tengo que darle yo a todas las páginas un nombre para guardarlo,, hay manera de que lo nombre automáticamente
Respuesta
1
La explicación que te voy a dar te puede sonar un poco "complicada", pero si lo vas haciendo "pasito a pasito" no deberías tener ningún problema.
Voy a suponer lo siguiente:
- Creas en tu tabla un nuevo campo, al que yo llamaré [pdf], de tipo texto (olvídate de que sea de tipo hipervínculo).
- Añades ese nuevo campo a tu formulario
- Para ese campo [pdf] sacas sus propiedades y te vas a la pestaña Eventos -> Al hacer click, y le generas el siguiente código:
...
Private Sub...
Dim vEnlace as string
vEnlace=me.pdf.value
application.followhyperlink vEnlace
End Sub
....
Vamos a por el relleno del campo pdf a partir del campo referencia.
- Coges el campo [ref] y sacas sus propiedades. Te vas a la pestaña Eventos -> Después de actualizar, y generas el siguiente código:
...
Private Sub...
Dim ruta as string, vRef as string
ruta = "c:\miRuta\" 'Aquí debes poner la ruta completa donde se guarda el pdf
vRef = me.Ref.value
me.pdf.value= ruta & vRef & ".pdf"
End Sub
...
Vamos a por la impresora en pdf. Para este código el PdfCreator debe ser la impresora predeterminada, porque si no se complicaría un poco el código.
Supongamos que tienes un botón para generar el pdf. Sacas las propiedades de ese botón y te vas a la pestaña Eventos -> Al hacer click, y le generas el siguiente código:
...
Private Sub ...
Dim ruta As String, nomReport As String
Dim pdfFinal As String
Dim pdfArchivo As PDFCreator.clsPDFCreator
ruta = "c:\miRuta\" 'Aquí debes poner la ruta donde se guardará el pdf
nomReport = me.ref.value
pdfFinal = nomReport & ".pdf"
Set pdfArchivo = New PDFCreator.clsPDFCreator
With pdfArchivo
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "No se puede abrir el PDFCreator.", vbCritical + _
vbOKOnly, "ERROR"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = ruta
.cOption("AutosaveFilename") = pdfFinal
.cOption("AutosaveFormat") = 0
.cClearCache
End With
DoCmd.OpenReport nomReport
Do Until pdfArchivo.cCountOfPrintjobs = 1
DoEvents
Loop
pdfArchivo.cPrinterStop = False
Do Until pdfArchivo.cCountOfPrintjobs = 0
DoEvents
Loop
pdfArchivo.cClose
Set pdfArchivo = Nothing
End Sub
...
- Ahora, con el editor de VB a la vista, tienes que irte a menú Herramientas -> Referencias. Ahí buscas una referencia llamada "PDFCreator". Cuando la encuentres la marcas y aceptas. Así ya tendrás la referencia registrada y el código anterior ya te funcionará correctamente.
Y eso es todo. Como no sé exactamente cómo operas la anterior explicación te la he puesto imaginándome cómo realizas el proceso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas