Access - Envío formulario access a distintos e_mails

 
Vista:

Envío formulario access a distintos e_mails

Publicado por Juan (6 intervenciones) el 29/09/2008 10:34:38
Buenos días a todos,

Antes de nada, agradecer vuestra ayuda y daros las gracias por vuestro tiempo.

Os cuento mi problema.Tengo creado un Informe en Access, que recoge los datos de una consulta, entre ellos un campo de email.

A mayores de esto, tengo creado una botón en un formulario, que lo que debería hacer es enviar un informe por cada registro a su email especificado.

El código del evento es el siguiente:

Código: Sub Comando71_Click()
Dim rst As DAO.Recordset
Dim strSql As String
Dim Correo As String

strSql = "SELECT * FROM [tabla]"
Set rst = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)

rst.MoveFirst

Do Until rst.EOF
Correo = rst!E_Mail
DoCmd.SendObject acSendForm, "Informe-1", acFormatHTML, Correo, , , _
"Asunto: Envio de Informe ", , True
rst.MoveNext
Loop

rst.Close

End Sub


El problema es que se me estan generando todos los informes (un informe por registro), y lo está enviando al primer email del primer registro, no a su correspondiente.

¿Me podríais ayudar?

Muchas gracias de nuevo y un saludo a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Envío formulario access a distintos e_mails

Publicado por Enrique (1299 intervenciones) el 29/09/2008 11:33:40
Juan, prueba con lo siguiente a ver si hay suerte:

Define principio del evento
Dim K As Long

Y luego esto:

Do Until rst.EOF
For K = 0 To rst.RecordCount - 1
Correo = rst!E_Mail
DoCmd.SendObject acSendForm, "Informe-1", acFormatHTML, Correo, , , _
"Asunto: Envio de Informe ", , True
rst.MoveNext
Next K
Loop
rst.Close: Set rst = Nothing

Yo suelo usar: While Not rst.EOF y cierro con Wend, aunque creo que con Do Until y Loop tambien deberia funcionar.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Juan (6 intervenciones) el 29/09/2008 11:46:05
Muchas Gracías por tu ayuda Enrique

Te comento lo que he cambiado tal y como me has puesto:

Sub Comando71_Click()
Dim rst As DAO.Recordset
Dim strSql As String
Dim Correo As String
Dim pos As Long

strSql = "SELECT * FROM [PolizasPendientes-RequiereBoletin-Oficinas]"
Set rst = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)

rst.MoveFirst
pos = 0

While Not rst.EOF

For pos = 0 To rst.RecordCount - 1
Correo = rst!E_Mail
DoCmd.SendObject acSendReport, "Polizas Pendientes -Requiere Boletin-Oficinas", acFormatHTML, Correo, , , _
"Asunto: Envio de Informe ", , True
rst.MoveNext
Next pos

Wend

rst.Close: Set rst = Nothing

End Sub

El problema es que me sigue haciendo exactamente lo mismo. Me genera todos los Informes, pero me los adjunta todos al mismo email, y no cada uno al que le corresponde.

Muchisimas gracias de nuevo, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Victoria (1530 intervenciones) el 29/09/2008 13:21:58
Disculpa, NO has cargado el recordset Es algo que aprendí, precisamente, aquí, en el foro

rs.MoveLast
rs.MoveFirst

Prueba con eso, porque, el resto está bien
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Juan (6 intervenciones) el 29/09/2008 13:31:23
Perdona Victoria, no te he entendido muy bien ( a lo mejor es que no tengo mucho idea xD )

¿El recordset no está cargado en:
Set rst = CurrentDb.OpenRecordset(strSql, dbOpenDynaset) ?

Vamos a ver, que a lo mejor me he liado antes. Lo que tengo en la BBDD es lo siguiente:

- Una consulta de creación de tabla.
- La tabla creada a partir de la consulta ( entre la que se encuentra un campo de email )
- Un informe ( con tantas hojas como registros hay en la página) que coge los datos de esta tabla.

Bien, pues lo que quiero hacer es:

Coger la primera hoja del informe (que corresponde al 1º registro de la tabla) y enviarlo por email a una dirección de correo. Esta dirección esta en uno de los campos de la tabla. Esto, claro está, debería de estar dentro de un bucle para que hiciese lo mismo con todos los registros.

El problema que tengo, es que me está creando un email dirigido a la dirección del primer registro y me adjunta todas las hojas del informe a ese mail.

Muchísimas gracias a ambos por vuestra respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Enrique (1299 intervenciones) el 29/09/2008 20:43:14
Hola Juan:
A mi me parece que no estas enfocando el tema bien del todo. El error creo que lo tienes precisamente en lo que indicas en esta frase tuya:

"Un informe ( con tantas hojas como registros hay en la página) que coge los datos de esta tabla. "

No sirve tener un informe con tantas páginas como registros porque al fin y al cabo, sigue siendo un mismo informe y como al abrir el Recodset de la Tabla no restringues los registros, pués el comando DoCmd.SenObject, trata de enviar todos los registros a todos los destinatarios. Lo que pasa es que al abrirse tu programa de correo, se detiene hasta que pulsas en botón "Enviar" y dá la sensación de que quiere enviar todos los registros al primer destinatario, pero cuando supuestamente termine con el primero, seguiría con el resto de E-Mail de todos los registros.

La solución a mi entender, es ir generado los informes solo con una página cada vez, cambiando el Origen del Registro del Informe desde el propio formulario, el cual se irá incrementando de uno en uno hasta llegar el final de la Tabla. Aqui tienes un ejemplo que posiblemente te sirva.

http://es.geocities.com/ensolva/Descargas/Varios/EnviarUnEmailCadaRegistro.zip

Está todo explicado en el Evento del botón del formulario. Comprueba tambien el Evento "Al abrir" del Informe y no intentes abrir este informe directamente porque dará error al tener su origen dependiente del formulario.

Ya me dirás si te sirve de algo este ejemplo.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Juan (6 intervenciones) el 30/09/2008 08:47:51
Muchas gracias Enrique, si que me ha servido!! Voy a terminar de pelearme aquí con esto, ya os contaré.

Gracias de nuevo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Envío formulario access a distintos e_mails

Publicado por Claudio Moreno (1 intervención) el 07/10/2008 21:41:29
yo con puro mirar solucione mi problema se pasaron gracias a todos!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar