Enviar por e-mail felicitaciones en access

Como se puede Crear un correo electrónico de cumpleaños automatizado. Osea en un formulario tengo una lista de los cumpleaños del mes al darle clic a uno de ellos me envíe otro formulario o informe por correo dando felicitaciones

1 respuesta

Respuesta
4

Vamos a suponer que el formulario depende de la tabla Empleados que tiene un campo FechaNac.

Puedes hacerlo de muchas formas, en realidad depende de como quieras hacerlo tú, si un formato de informe de felicitación predeterminado, como archivo adjunto, o simplemente un mensaje de texto, etc.

Por ejemplo, en el evento Al cargar del formulario puedes crear un procedimiento de evento y poner algo como

If nz(dcount("*","empleados","month([fechanac])=month(Date()) and day([fechanac])=day(date())"))=0 then

Msgbox"Para que voy a abrirme si no hay ningún cumpleaños hoy", vbokonly,"Prueba otro día"

Docmd. Close acform,"nombre del formulario"

else

me.recordsource="select * from empleados where month([fechanac])=month(Date()) and day([fechanac])=day(date())"

end if

Me explico, cuando vayas a abrir el formulario, primero comprobará si hay algún empleado que cumpla años ese día, si no lo hay, te muestra el mensaje y se cierra. Por el contrario, si lo(s) hay, el formulario sólo te muestra aquellos registros que cumplan años.

A partir de ahí, o bien cuando hagas doble clic en un registro, o bien que hagas que recorra los registros( si hay varios) diciéndole que envíe un mensaje de texto o un informe usando

Docmd.sendobject...

Por eso sería necesario que concretaras lo que le vas a enviar

Hola, buen día, gracias por su atención. me gusta esa idea,

Voy a tratar de ponerla en practica y le aviso

Aun no he podido hacer eso, no no estaba en mi ciudad. Informo al Experto por la tardanza mía.

Lo puse en practica, lo que no entiendo como envío un formulario que tengo diseñado para dar las felicitaciones a quien corresponda enviarlo por email al dar clic, doble clic o simplemente envíe a los que cumplan ese día.

La ultima parte si no la entiendo , el de como enviar el formulario que diseñe para dar felicitaciones a los cumpleañeros del dia

Te decía, que se puede hacer de mil formas, dependiendo de si lo que quieres poner como asunto del mensaje es personalizado a cada cumpleañero, por lo que debería estar en un campo, si lo que quieres poner como asunto del mensaje, lo mismo, en que formato quieres enviar el formulario, etc, etc. Por ejemplo, vamos a suponer que tengo la tabla Clientes, donde puedes ver que hay que cumplen hoy día 20 de Mayo

Y tengo un formulario Cumpleaños, tal que

Y un formulario Felicitación

Cuando voy a abrir el formulario Cumpleaños me dice si hay alguno y el número de ellos

Si no los hubiera me diría que no hay y que para qué se va abrir. Al decirle que si quiero verlos

Sólo me muestra los que cumplen años. Si pulso el botón Enviar Felicitación, en Outlook

Yo le he puesto que envíe el formulario como archivo PDF, que siempre queda "más bonito" y lo que recibe como archivo adjunto es

El código del evento Al cargar del formulario Cumpleaños es

Private Sub Form_Load()
Dim c As Byte, respuesta As Byte
c = Nz(DCount("*", "clientes", "month([fechanac])=month(Date()) and day([fechanac])=day(date())"))
If c > 0 Then
respuesta = MsgBox("Hoy hay " & c & " personas que cumplen años. ¿Quiere verlos?", vbYesNo, "Tu decides")
If respuesta = vbYes Then
Me.RecordSource = "select * from clientes where month([fechanac])=month(Date()) and day([fechanac])=day(date())"
ElseIf respuesta = vbNo Then
DoCmd.Close acForm, "cumpleaños"
End If
Else
MsgBox "Para que voy a abrirme si no hay nadie que cumpla hoy", vbOKOnly + vbInformation, "Quizá otro día"
DoCmd.Close acForm, "cumpleaños"
End If
End Sub

he ampliado el código para tratar de cubrir todas las posibilidades, de que no hay, de que haya y no quieras verlos, y de que haya y quieras verlos.

Y el código del botón Enviar felicitación es

Private Sub Comando9_Click()
Dim i As Byte
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
DoCmd.SendObject acSendForm, "Felicitación", "PDFFormat(*.pdf)", "" & Me.Email & "", , , "Remitiendo felicitación", "Estimado amigo " & "" & Me.Cliente & "" & " Muchas felicidades"
DoCmd.GoToRecord , , acNext
Next
End Sub

Aunque si fueran varios los que cumplen el mismo día, personalmente lo haría de otra forma.

Pero ya te digo que todo depende de lo que quieras poner.

¡Gracias! Lo estoy poniendo en practica y mada error de compilación, no se encontró método dato miembro y me abre el Visuar Basi, me sobre salta la palabra

Me.Email en la línea de indicaciones

Yo no se que quiere decir con eso!

Todo lo de más, funciona tal como explico usted, pero llega hasta ahí, al hacer clic no envía el formulario en cuestión porque da ese error.

Una pregunta aparte, claro tiene que ver con esto.

En ves de halar los datos para esta finalidad, ¿se podrá halar desde una consulta?

Ejemplo en ves de tomar los datos de la Tabla empleados, ¿se podría ser desde una consulta?

Lo de Email, es que como puedes ver, en el formulario tengo un cuadro de texto, que se llama así, Email, donde aparece el de cada cliente.

¡Gracias!  Pero mi campo se llama igual

Podemos hacer una cosa. Si quieres, repito, si quieres, haz una copia vacía de tu base, sólo con la tabla de los empleados(vacía) y el formulario y me la mandas a [email protected]

La miro y te digo

Si lo haces, en el asunto del mensaje pon tu alias Abraham Gil, ya que si no sé quien me escribe ni los abro.

¡Gracias! Hola le envíe el asunto por su e-mail y como que no lo ha visto o si tiene mucho trabajo esperaré, saludos

Me quede esperando respuesta

No he recibido nada. Mi correo es [email protected]

Ha caramba, con razón. Voy a ver el e-mail y lo reenvío.

Saludos

Mañana por la mañana me pongo con ello

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas