Formularios Avanzados Access 2007

Nuevamente solicitando de tu experiencia...
Disculpame por no pedir aclaración en la pregunta anterion la voy a pegar por si no te acuerdas:
(Hola!
Si los campos son independientes la dirección no se te guardará en la tabla. Por ello, cuando vuelvas a consultar ese registro el hipervínculo no existirá. En definitiva, que cuando quieras guardar algo necesitas tener un campo en una tabla donde se pueda guardar esa información.
Teniendo en cuenta lo que te acabo de comentar yo no crearía un hipervínculo, sino un campo de texto. Si tienes todos los pdf's en la misma carpeta se podría hacer lo que comentas, pero si los tienes en diferentes sitios no hay más remedio que guardar toda la ruta completa.
Imaginemos que tienes un campo en una tabla que te recoge esa ruta, que yo llamaré [miArchivo]. E imaginemos que tienes un botón en el formulario que te permitirá navegar por tu PC para seleccionar el archivo. Lo que debes hacer es lo siguiente:
1.- Abres el editor de VB y registras la biblioteca "Microsoft Office 12.0 Object Library"
2.- Insertas un módulo estándar, y en él insertas la siguiente función:
...
Public Function CarpetaArchivo() As String
   Dim fDialog As Office.FileDialog
   'Set up the File Dialog.
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
   With fDialog
      .AllowMultiSelect = False
      .ButtonName = "Seleccionar"
      .Title = "Seleccionar el archivo o la carpeta"
      .InitialFileName = "C:\"
      .InitialView = msoFileDialogViewDetails
      .Filters.Clear
      .Filters.Add "Ficheros Pdf", "*.pdf"
      .Filters.Add "All Files", "*.*"
      If .Show = True Then
         CarpetaArchivo = .SelectedItems(1)
      Else
         MsgBox "Ha pulsado el botón <Cancelar>."
      End If
   End With
End Function
...
3.- En el botón para buscar el archivo le generas el siguiente código en el evento "Al hacer click":
...
Private Sub ...
    Me.miArchivo.Value = CarpetaArchivo()
End Sub
...
4.- En el campo [miArchivo], en el evento "Al hacer click", le generas el siguiente código:
...
Private Sub miArchivo_Click()
    Dim vArch As String
    vArch = Me.miArchivo.Value
    Application.FollowHyperlink (vArch)
End Sub
...
Y eso es todo.
Un saludo,)
Esta respuesta me la diste hace unos minutos pero no me dijiste como hacer para que me guarde solo el nombre de la carpeta y el nombre del archivo... No necesito el resto

1 Respuesta

Respuesta
1
Para que te funcione el hipervínculo (a través del código followhiperlink) necesitas la ruta completa del archivo.
Esa ruta completa se consigue a través del valor que te devuelve la función CarpetaArchivo()
Si dejas sólo el nombre de la carpeta/nombre archivo no podrás abrir el pdf al hacer click sobre el botón.
Si es eso lo que realmente quieres deberás tener un poco de paciencia, porque tendría que pensar qué código programarte para conseguir lo que quieres.
Bueno... Pues eso.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas