Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
Formularios : WebToMail
Autor/es:
Juan M Afán de Ribera
Pregunta : Tengo un formulario enlazado a los campos de una tabla en donde tengo los datos de mis clientes. Uno de esos campos, al que he puesto de nombre "Email" es del tipo hipervínculo y quiero hacerla servir para almacenar una dirección de correo electrónico. El caso es que cuando hago click en el enlace de este campo para enviar un e-mail, en vez de aparecer el programa de correo electrónico me aparece el navegador, como si en vez de una dirección de correo electrónico, hubiera introducido la dirección de una página web. ¿Estoy haciendo algo mal o es un fallo de Access?
Respuesta : Ni estás haciendo nada mal, ni tampoco es un bug de Access.

Lo que ocurre es que en Access un campo de tipo hipervínculo, de manera predeterminada intentará enlazar siempre con una dirección web. Esto es porque este tipo de campos, internamente, almacenan la información con este formato:

    #http://[valor del campo]#

Sabiendo ésto, podemos hacer una pequeña función que sustituya el valor "#http://" por "#mailto:". De esta forma el campo habrá pasado de ser un enlace tipo web a un enlace tipo correo electrónico.

Esta función podría ser como la función WebToMail, que encontrarás más abajo. Para utilizarla correctamente, y tomando como ejemplo el campo "Email" de tu formulario, en el evento AfterUpdate (Después de actualizar) del campo "Email" debes asociar una llamada a la función WebToMail de esta manera
Private Sub EMail_AfterUpdate()
    Me.Email = WebToMail(Me.Email)
End Sub
Después, en un módulo estandar, debes pegar el siguiente código:
'---------------------------------------------------------
'
' WebToMail
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Function WebToMail(strLink As String) As String
    WebToMail = Replace(strLink, "#http://", "#mailto:")
End Function
'---------------------------------------------------------
Si estás utilizando Access 97 te encontrarás con que la función Replace no existe, pero eso no tiene por qué ser un problema. Simplemente, copia y pega en un módulo estandar la función Replace que encontrarás en esta otra página de este mismo sitio.

Ejemplos:

 

Temas relacionados:

Replace Access 97

 

Última actualización: 2/1/2005