HyperlinkAddress

Hola, tengo una db, y en un formulario tiene un botón que cuando lo clicas envía mail a una direcc. En concreto. El inconveniente que tiene es que cada vez que lo clicas, se recibe 2 correos idénticos. He podido descartar que el problema estuviera en el fichero .asp y en la db, y todo apunta que es al parámetro que utilizo en el editor de Visual Basic "HiperlinkAddress". Te paso la linea para que lo veas:
boton.HyperlinkAddress = "http://www.dominio.es/fichero.asp"
Funcionar me funciona bien pero con el inconveniente que te digo. Podrías decirme el por que de este comportamiento del comando, ¿hay una solución para esto?.
Si no, ¿hay un comando diferente pero que haga la misma función?.

1 respuesta

Respuesta
1
Un favor, puedes colocar el código de la página asp que realiza la función de envío del correo que mencionas... Ya que lo que colocas no me sirve mucho para determinar que esta pasando...
Gracias por tu tiempo dedicado. Te paso el contenido del fichero.asp
Pero como te comente yo lo estuve mirando, simplificándolo al máximo hasta llegar a la conclusión que el problema venia del parámetro HyperlinkAddress. Pienso yo...
No obstante quizás veas algo que se me pudo pasar a mí. En el username y el password te aseguro que están bien introducido. Saludos
<%@ Language=VBScript %>
<!--#include file="adovbs.inc"-->
<%
emp = Request.QueryString("Empresa")
acc = Request.QueryString("Accion")
anyo = Request.QueryString("anyo")
Dim objMail
Set objMail = Server.CreateObject("Persits.MailSender")
objMail.Host = "smtp.arvet.es"
objMail.Username = "xxxxx"
objMail.Password = "xxxxx"
objMail.From = "[email protected]"
objMail.FromName="Arvet"
objMail.IsHTML = True
objMail.Subject = "ALTA EMPRESA EN UNA ACCION DE PROMOCION"
objMail.AddAddress "[email protected]"
objMail.IsHTML=False
objMail.Body="Se ha dado de alta " & emp & " en la acción " & acc & " año " & anyo
objMail.Send
'self.close()
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<table border="0" cellpadding="0" cellspacing="0" width="485">
<tr>
<td colspan="2"> <br>
</td>
</tr>
<tr>
<td colspan="2"> <br>
<table border="0" cellpadding="0" cellspacing="0" width="485">
<tr>
<td align="right"><img src="../images/cantonera_izqda1.gif" width="7" height="7"></td>
<td bgcolor="#F8F4EE"><img src="../images/cantonera_alto.gif" width="1" height="7"></td>
<td><img src="../images/cantonera_dcha1.gif" width="7" height="7"></td>
</tr>
<tr>
<form name="buscador" method="POST" action="">
<td width="7" bgcolor="#F8F4EE"><img src="../images/cantonera_ancho.gif" width="7" height="1"></td>
<td bgcolor="#F8F4EE">
<table border="0" cellpadding="0" bgcolor="#F8F4EE">
<tr> </tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Se
ha mandado un e-mail al dpto. de administración, comunicando
el alta de la <b>Empresa</b> <% = emp%> en la <b>Acción</b>
<% = acc%> <% = anyo%> </font></td>
</tr>
</table>
</td>
<td width="7" bgcolor="#F8F4EE"><img src="../images/cantonera_ancho.gif" width="7" height="1"></td>
</form>
</tr>
<tr>
<td align="right"><img src="../images/cantonera_izqda2.gif" width="7" height="7"></td>
<td bgcolor="#F8F4EE"><img src="../images/cantonera_alto.gif" width="1" height="7"></td>
<td><img src="../images/cantonera_dcha2.gif" width="7" height="7"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<script language="VBScript">
self.close()
</script>
Ok, el código esta bien pero es del asp que muestra que se envío el correo no del que llama a este asp...
Gracias de nuevo, te paso el código de Visual Basic que hay en Access para llamar al fichero.asp que es el que te pase. No hay más que esto, pulsas un botón que ejecuta este código que te paso y por medio del parámetro HyperlinkAddress llama al fichero.asp que es el que envía un mail a la dirección de correo.
Un saludo
Private Sub BOTONAGREGAR_Click()
On Error GoTo Err_BOTONAGREGAR_Click
Dim RST As New ADODB.Recordset
Dim SQL As String
RST.ActiveConnection = CurrentProject.Connection
SQL = "Select id_sector from sectores where sector ='" & Me.SECTOR & "'"
RST.Open SQL, , adOpenKeyset, adLockBatchOptimistic, adCmdText
Me.ID_SECTOR = RST.Fields("id_sector")
RST.Close
BOTONAGREGAR.HyperlinkAddress = "http://www.dominio.es/fichero.asp?Accion=" & Me.DESCRIP_ACCION & "&Empresa=" & Me.EMPRESAS & "&anyo=" & Me.AÑO
SUBVENCION = True
Me.AÑO.SetFocus
DoCmd.GoToRecord , , acNewRec
Me.AÑO.SetFocus
Me.Cycle = 1 'REGISTRO ACTIVO,PARA QUE CON EL TABULADOR
'NO SE PASE AL SIGUIENTE REGISTRO.
Exit_BOTONAGREGAR_Click:
Exit Sub
Err_BOTONAGREGAR_Click:
MsgBox Err.Description
Resume Exit_BOTONAGREGAR_Click
End Sub
Y si mueves la asignación de la propiedad del hyperlink hasta el final de tu evento click del botón...
Gracias y disculpa por la tardanza,
he probado lo que me has dicho pero sigue igual. Como te dije al principio pude descartar todo, dándome la sensación que el problema lo da la propiedad HyperlinkAddress. Te animo que hagas la prueba tú mismo ya que para llegar ha esta conclusión yo he simplificado al máximo los dos fichero que interatuan (la db y el .asp)
Hice la prueba de hacer una db nueva con solo un formulario que contiene un solo botón y que al hacer clic ejecuta el código:
boton.HyperlinkAddress = "http://www.dominio.es/fichero.asp"
Se me abre el navegador con ese link y listo. En el fichero.asp que ejecuta también lo he simplificado al máximo dejando el este código:
<%@ Language=VBScript %>
<%
Dim objMail
Set objMail = Server.CreateObject("Persits.MailSender")
objMail.Host = "smtp.domonio.es"
objMail.Username = "***"
objMail.Password = "***"
objMail.From = "[email protected]"
objMail.FromName="Prueba"
objMail.Subject = "ALTA EMPRESA EN UNA ACCION DE PROMOCION"
objMail.AddAddress "[email protected]"
objMail.Body="Se ha dado de alta"
objMail.Send
%>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
prueba
</body>
</html>
Si ejecuto el link directamente en el navegador me hace el envío de un solo correo que es lo que yo quiero, pero cuando lo ejecuta desde esa simple db me lo duplica.
Puedes probarlo tú mismo, no te llevara mucho tiempo. Si conoces otra propiedad que haga lo mismo que esta, seria interesante probarlo.
No te quiero aburrir más, haber que se te ocurre a ti. Y muchas gracias por tú ayuda.
Saludos
Muchas Gracias por dedicar tú tiempo en ayudarme.
Te lo agradezco, un cordial saludo.
No, ya estuve resivando lo que comentas y lo que se indica para su uso y el único lugar es que se ejecute dos veces tu página de código asp desde la llamada de la rutina que tienes en access...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas