Tengo dudas relacionadas con fechas sobre el manejo de la base de datos Microsoft Access

Buenos días,
Tengo unas cuantas dudas sobre access, 2003 o 2007, me es indiferente, empecemos.
Tengo una serie de tablas y de formularios en los cuales tengo un campo que es una fecha, este valor lo quiero comparar con la fecha actual y cuando me quede un día laborable para llegar a ella me mande un mail, no se si esto es factible o no. Además necesito que me envíen otro de los campos en el asunto para poder identificarlo.
Además necesito realizar la consulta de estas fechas cada día, y no siempre entraré en este formulario, si que es cierto que entraré cada día en un formulario principal, en el cual creo que puedo ejecutar la subrutina de comprobación.
Muchas gracias por la respuesta.
Si necesitas alguna alaración de mi pregunta aquí estaré.
1

1 respuesta

Respuesta
1
Para hacer lo que comentas te recomiendo que mires este artículo, donde está todo perfectamente explicado. No creo que tengas demasiados problemas en adaptarlo a tu caso.
El artículo es http://neckkito.eu5.org/index.php?option=com_content&view=article&id=67:avisoautomaticoalabrirformulario&catid=42:ejemplos-de-formularios&Itemid=55
Poner el aviso un día laborable antes complica bastante el código. Además, Access no sabe qué días festivos hay en tu comunidad, provincia, país...
Por eso te recomiendo que pongas el aviso, como mínimo, 3 días antes (por eso del fin de semana).
El tema del correo no te lo pongo todavía porque voy justo de tiempo ahora. En cuanto tenga un momento te escribo el código para el tema del mail. Recuerda que al hablar de mail hablamos de integración con el paquete Office, lo que implica utilizar Outlook (para tu conocimiento).
Lo dicho. Te escribo un poco más tarde (espero).
Un saludo.
... http://neckkito.eu5.org ...
Muchísimas gracias por el aporte, me lo he estado mirando y casi se ajusta a la perfección a lo que quiero implementar me has sido de muchísima ayuda, es lo que tiene ser un novato muy novato.
Espero tu aclaración del mail con anelo. ¿Por cierto cuando me lo mires podrías decir si es factible mandar el mismo mail a una lista de contactos que tengo en otra tabla de datos?
De nuevo muchísimas gracias.
Te paso el código que debes poner para poder enviar un mail. Como te comentaba, debes tener el Outlook en funcionamiento para que la cosa te marche.
Si has seguido el ejemplo que te recomendaba este código debes ponerlo en lugar del msgbox, cuando se cumple la condición de fechas.
Te marcaré en negrita las cosas que tú debes cambiar para adaptarlo a tu BD.
El código es el siguiente:
---
Private Sub Comando0_Click()
'Creamos una instancia de Outlook
Dim Olk As Outlook.Application
Set Olk = CreateObject("Outlook.Application")
'Creamos un nuevo mensaje de Outlook
Dim OlkMsg As Outlook.MailItem
Set OlkMsg = Olk.CreateItem(olMailItem)
'Creamos la información del mail
With OlkMsg
Dim OlkDestinatario As Outlook.Recipient
Set OlkDestinatario = .Recipients.Add("[email protected]")
OlkDestinatario.Type = olTo
.Subject = "Asunto"
.Body = "Cuerpo del mensaje"
.Send
End With
Set Olk = Nothing
Set OlkMsg = Nothing
Set OlkDestinatario = Nothing
End Sub
---
Respecto a lo que me comentabas del tema de los destinatarios de otra tabla debes crear un recordset que te vaya recorriendo los registros. Te indico grosso modo como sería, partiendo de las siguientes suposiciones:
TDatos es el nombre de la tabla
[mail] Es el nombre del campo donde tienes las direcciones
---
Dim rst As Recordset
Dim vDest as string
Set rst = CurrentDb.OpenRecordset("TDatos")
rst.MoveFirst
Do until rst.EOF
vDest = rst.Fields("mail").Value
'Aquí iría el código anterior de enviar el mail. El único cambio que debes hacer está en
'la línea --- Set OlkDestinatario = .Recipients.Add("[email protected]") ---, donde deberías
'poner --- Set OlkDestinatario = .Recipients.Add(vDest) ---
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
---
Y eso es todo. Ya me dirás.
Te invito a visitar mi web y a hacer las sugerencias, comentarios y aportaciones que creas convenientes. Serán todas bienvenidas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas