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
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 de Neckkito Nck
1