ACCESS: Método 'Application.FollowHyperlink Me.Foto0'

La línea de código 'Application. FollowHyperlink Me. Foto0' funciona correctamente -me abre el hipervínculo correspondiente- cuando en el campo 'Foto0' inserto la ruta a un fichero local, pero no cuando en ese campo inserto una dirección web o fichero público ubicado en la nube, en estos dos últimos casos el depurador de ACCESS me dice que se ha producido el error '7971' en tiempo de ejecución y no 'sigue' el hipervínculo por lo que intuyo que debo modificar en algo la sintaxis inicial escrita...

Alguien me puede echar una mano.

1 respuesta

Respuesta
2

Pues la sintaxis es correcta. De hecho, estuve haciendo pruebas con diversos valores en el campo, y en todos ellos me abrió correctamente el archivo.

Esto es lo que probé:

1º/ Archivo local -> Abre sin problemas

2º/ Dirección web (la de esta pregunta, sin http) -> Abre sin problemas

3º/ Archivo en dropbox -> Abre sin problemas

4º/ Enlace público a archivo de dropbox -> Abre sin problemas la web para descargar

5º/ Archivo en otro PC de la red -> Abre sin problemas

Lo único que se me ocurre es que verifiques si el contenido del campo es una ruta válida.

¿El mensaje de error no te da alguna pista de por qué falla?

A ver, a ver, a ver...

SveinBjorn, dices... '2º/ Dirección web (la de esta pregunta, sin http) -> Abre sin problemas... Sin http? Yo escribo toda la ruta, con el http incluido ¿¿??.
3º/ Enlace público a archivo de dropbox -> Abre sin problemas la web para descargar... ese es precisamente el caso: un archivo público en dropbox... ACCESS, tras mandar el mensaje consabido de 'Peligro, los hipervínculos blablablabla...' dice que se ha producido el error '7971', Microsoft Access no puede visitar el hipervinculo a: '#http://... etc etc' Es que no hay que incluir en el hipervínculo el  http?, y entonces?     :-0

Acabo de probar, y poniendo el http también me abre el enlace.

Y probando lo de dropbox, tambien me funciona, con estas dos pruebas que hice:

1/ Enlace a archivo .accdb en carpeta Public de dropbox -> aviso de advertencia de MS y abre el archivo directamente

2/ Enlace a archivo en otra carpeta de dropbox ->Abre la página para descargarlo.

Te adjunto la BD sobre la que hice esta última prueba, para que mires si hay alguna diferencia con la tuya. Revisa las opciones de seguridad, por si tu access está configurado de forma más restrictiva...

http://www.filebig.net/files/278sNygMn8 

No lo entiendo!!!

En tu ejemplo al hacer clic en el botón de comando 'Ver' me abre el hipervínculo a esta página sin problemas... ni siquiera de advierte de los peligros de los hipervínculos...  : - 0

Sin embargo en mi bd nada, la única diferencia es que la línea de código del  Application.FollowHyperlink Me.Foto0 está asociada a un cuadro de texto en vez de a un botón -cuestión que me funciona sin problemas, como ya he dicho, cuando el hipervínculo lo es a un archivo en local...-, previa evaluación de si el campo contenedor del hipervínculo es nulo o no... el código completo es este:

Private Sub Txt4_Click()
If (Eval("[Forms]![F_UBICACION_GENERICA]![Imagen4] Is Null")) Then
MsgBox "No existe imagen vinculada asociada a este cuadro de texto, si fuese el caso fuerce la visualización del cuadro de hipervínculo haciendo clic en el Botón 'VISUALIZAR U OCULTAR HIPERVÍNCULOS' e insértelo.", vbInformation, "Gestión de Cementerios"
Exit Sub
End If
Application.FollowHyperlink Me.Imagen4
End Sub

Si no lo resuelvo de aquí a la hora de comer subo un ejemplo con mi bd problemática...

De verdad: no lo entiendo...: - (

Viendo más a fondo tu ejemplo SvenBjorn, reparo en que el campo contenedor del Hipervínculo en tabla lo tienes definido como campo de texto!!! Yo sin embargo lo tengo definido como Hipervínculo... Voy a seguir con esta pista...

Pues y tampoco lo entiendo... pero el If que pones me parece un poco raro... Yo lo haría así:

If IsNull([Forms]![F_UBICACION_GENERICA]![Imagen4]) Then

o así:

If IsNull(Me.Imagen4) Then

o:

If Nz(Me.Imagen4,"")="" Then

Si subes tu archivo, le echo un vistazo sin problema, aunque ya no prometo que encuentre una solución...

No vi tu segundo mensaje, y ahí tienes el origen de tu problema:

1º/ Si el campo lo defines como hipervínculo, no tiene sentido que ejecutes el Application. Followhyperlink al hacer click en el campo en el formulario, pues el hipervínculo ya lo hace por sí mismo.

2º/ Al definir un campo como hipervínculo, realmente te está almecenando distintos valores en el mismo campo. Si tu escribes en tu campo hipervinculo www.google.com, realmente te almacena www.google.com #http://www.google.com# (o simplemente #http://www.google.com#), por eso al coger el valor por código, te da el error.

Esto lo puedes comprobar fácilmente con un msgbox Me. Imagen4

Mira estos enlaces si quieres profundizar un poco más:

http://www.jggomez.eu/D%20Bdr_Erp/1%20Temas/R%20Campos%20y%20Controles%20Especiales.pdf 

https://support.microsoft.com/es-es/kb/323202 

Solución, define el campo como texto y usa el código, o defínelo sólo como hipervínculo y no uses el código, pero has de tener en cuenta lo que muestra y lo que almacena el campo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas