Eliminar avisos al abrir hipervínculos access 2003

En access 2003 tengo un formulario en el cual al hacer clic sobre un botón de comando se abre un hipervínculo, al hacerlo me salen unos mensajes de aviso: "Los hipervínculos pueden dañar...", al aceptar después me sale otro mensaje: "Algunos archivos pueden contener virus....", y finalmente al aceptar este también ya se ejecuta el hipervínculo. ¿Existe alguna forma de evitar estos mensajes?.

No quisiera que fuera con opciones de Access, sino con alguna forma de programación, ya que la BD la utiliza personal variado evitando así dar explicaciones a todos.

Respuesta
1

Te aconsejo que leas la información que facilita Microsoft sobre lo que planteas. Desde código se podría programar el cambio en el registro que indican, pero me parece mejor no entrar en ello ya que errores en el registro del sistema pueden acabar con una necesaria reinstalación... Además por las claves que hay que modficar (HKEY_CURRENT_USER\...) el cambio hay que realizarlo para cada usuario registrado en el sistema.

 http://support.microsoft.com/kb/925757/es

Cordiales saludos.

Disculpa ya que acabo de ver que te referías a la versión 2003. Imagino que las claves a modificar serán similares a las comentadas para 2007, bastando con buscar la ruta de la clave de acuerdo con la versión utilizada (en vez de HKEY...\12.0\... será con el número de versión de 2003 que creo era la 9 ).

Cordiales saludos.

Angel, gracias por las respuestas, pero de la forma que dices lo tengo que realizar en cada ordenador en el cual se ejecute la BD ¿correcto?, eso es lo que quiero evitar, por ello decía de hacerlo por programación en la propia BD.

¿Habría forma de hacerlo?

Como verás al tener que tocar las claves de usuarios a nivel del registro no solo hay que hacerlo en cada ordenador, sino que hay que bajar a nivel de usuario del ordenador. Esto se podría hacer por programación, pero ya te comenté que no lo creo conveniente ya que aparte de su dificultad (hay que localizar las claves de todos los usuarios...) si se provocan erroresel resultado puede ser malo...

No conozco otra manera de hacerlo desde código, ya que ni siquiera desde la interfaz de un Access ya instalado se permite hacerlo.

Cordiales saludos.

1 respuesta más de otro experto

Respuesta
2

¿El botón lo tienes programado en código VBA o por medio de macros?

Si lo tienes por código, puedes desactivar los avisos así:

Private Sub NombreBoton_Click()

DoCmd.SetWarnings False  'Esto desactiva los avisos de Access

'Aquí el código de tu botón

DoCmd.SetWarnings True 'Esto activa los avisos de Access

End Sub

Si lo tienes por macro, puedes usar la acción EstablecerAdvertencias, poniendola antes de la acción con el argumento en No, y después con el argumento en Sí para reestablecerlos.

Gracias Sveinbjorn El Rojo, pero no lo tengo de ninguna de esas formas. Es un hipervínculo, a través de la propiedad "Dirección hipervínculo", lo cual no se si es correcto. En caso de hacerlo a través de VBA como dices, ¿cómo debería de programar el hipervínculo?

Ok, esa propiedad nunca la usé, pero imagino que de esta forma te podría funcionar:

1º/ Sacas las propiedades de tu botón de comando

2º/ Vas a la pestaña Eventos y te colocas en Al Hacer click.

3º/ Te aparecerá a la derecha un botón con 3 puntos, lo pulsas y eliges Generador de código (o algo similar)

4º/ Se te abrirá el editor de VBA, y entre el Private Sub y el End Sub, escribes:

DoCmd.SetWarnings False  'Esto desactiva los avisos de Access

Application. FollowHyperlink "Dirección del hipervínculo"

DoCmd.SetWarnings True 'Esto activa los avisos de Access

El método FollowHyperlink tiene más opciones de configuración, puedes consultarla en la ayuda de acces, por si las necesitas.

Eso ya lo he probado pero no me funciona, voy a ver como hacerlo utilizando "Application.FollowHyperlink...", y con la opción que me describes.

Ok, prueba y me vas comentando.

Se me olvidó mencionarte que el Application. FollowHyperlink, te sirve tanto para abrir archivos como enlaces de internet:

Application.FollowHyperlink "http:\\www.google.com"

Application.FollowHyperlink "C:\Mis Archivos\Factura.pdf"

Bueno algo voy consguiendo, tras escribir:

 Private Sub Etiqueta144_Click()

DoCmd.SetWarnings False

Application.FollowHyperlink "Ruta de archivo"

End Sub

 Con ello ya solo me sale un mensaje de advertencia, "Algunos archivos pueden contener virus o dañar el sistema. Es importante saber si este archivo procede de una fuente fiable. ¿Desea abrir este archivo?" ; no sé si se podrá evitar que salga.

También he de decir que me sale lo mismo si pongo o no, el comando "DoCmd....."

Pues ya no sé qué más decirte sobre este método.

Como alternativas, intenta lo que se dice en este enlace: http://support.microsoft.com/kb/183923/es 

o prueba este otro sistema (yo lo uso bastante y nunca me dio problemas): http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/95-ejemplos-explicados/ejemplos-de-codigo/132-shellexecute 

Estoy mirando la segunda opción pero no la entiendo bien, ¿podrías indicarme el código entero para ello? Muchas gracias.

Es muy fácil:

1º/ Abre tu BD, y vas a Módulos. Insertas uno nuevo

2º/ Pega este código en ese módulo nuevo:

Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

3º/ Guarda el módulo con el nombre que quieras.

4º/ En tu botón ( o etiqueta, por el código que pusiste antes), lo pones:

Call ShellExecute(Me.hwnd, "Open", miArchivo, "", "", 1)

Donde miArchivo lo tendrás que cambiar por la ruta completa, nombre y extensión de tu archivo (y ponerlo entre comillas), por ejemplo:

Call ShellExecute(Me.hwnd, "Open", "C:\Mis Archivos\Factura.pdf", "", "", 1)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas