Código para enviar mensaje a correo electrónico

Wola buen día!

Necesito saber código para enviar vía correo electrónico(outook) de dom dif a hotmail, outlook, gmail y demás (emp privada) un mensaje donde diga a por perdona que tiene tareas pendientes donde el identificador es idTarea y a la persona que se le enviar el mensaje tiene el campo de Clave

Agradecería muxhisimo la ayuda de alguien la vrdd son muy verde en estas cosas de access es todo un mundo nuevo para mi.

:)

1

1 Respuesta

37.175 pts. Experto en Access y VBA.

No tienes porque usar Outlook para enviar un mail desde Access.

Yo lo hice hace meses y lo que conseguí fue que Access enviara un correo, sin usar cuenta de hotmail ni de gmail, sino del dominio de la empresa en la que trabajaba antes.

Si es lo que te interesa te busco el código y te lo envío.

si claro que me interesa mil gracias por eso mira te explico

necesito enviar un form que se llama tarea el cual contiene clave:num identificador a la persona que se le asignara la tarea ademas de un idTarea el num de tarea que sera quien idenfifique la tarea.

otra preguntita experto mira si introduzco un valor en el campo Clave necesito que ese mismo valor que acabo de introducir se copie el el campo idFicha de la misma tabla mil hgracias por tu ayuda

Estoy buscando el código que te decía. Creo que lo tengo en otro servidor. Lo miraré con más calma y te lo envío.

Por la otra pregunta:

En el diseño del form, marca el campo Clave, y en la pestaña eventos de la ventana de Propiedades (Ver/Propiedades), en el evento Después de actualizar, selecciona Procedimiento de evento y después el botón de los ...

Una vez en VBA entre las líneas Sub Clave_AfterUpdate y End Sub pones:

idFicha = Clave

Con eso lo que le dices es que cada vez que actualices el valor de Clave copie ese valor a idFicha

lo probé y no me copia el valor te explico:

mira tengo un form llamado nvo_Usuario donde como su nombre lo dice un nuevo usuario se da de alta y contiene los campos:

nombre, email y idFicha donde el tiene que introducir esos valores y al momento de darle guardar los debe de guardar en la tabla ejecutor pero al mimo tiempo en la tabla ejecutor tengo el campo Clave donde necesito que se copie el valor nuevo de ifFicha introducido pero ya escribí lo que me dijiste pero no me copia nada uppss perdón estoy muy verde en esto mil gracias por la ayuda.

se me pasaba mmm para enviar el correo electrónico tengo un form donde contiene un cuadro combinado el cual contien las direcc de correo electrónico; donde el usuario pueda elegir mil gracia sexperto por tu ayuda!!!

experto acabo d econseguir que copie el valor de idFicha a Clave pero tengo otra super pregunta???

mira cunado yo acceso al form tarea yo como idFicha le asigno una tarea a Clave; ademas de tener un form de ficha de usuario donde teclean su idFicha para accesar y este manda a un proyecto ; necesito que si yo como Clave (idFicha y Clave son los mismos valores) acceso al form Proyecto me aparezca el mensaje usted tiene tareas pendientes con idTarea tal mmm comento que en el form Tarea tengo un cuadro combinado que se llama idstatus y toma valores de una tabla llamada Status_Tarea (Asignada, Proceso y Terminada) entonces cunado yo idFicha dejo tarea a Clave y selecciono Asignada me mande mensaje aver si me explique mil gracias queDios te bendiga

Si en los dos campos vas a poner el mismo valor, ¿por qué empleas dos campos?

Veamos: para saber si alguien tiene tareas pendientes tendríamos que saber como haces que las tareas estén pendientes o no. Hay dos soluciones básicas:

a) Cuando se ha completado una tarea, se borra. No te lo aconsejo, ya que perderás información, pero va a tu criterio.

b) Cuando se ha completado una tarea tener un campo que lo indique, como TareaFinalizada, con dos valores (puede ser booleano, por ejemplo)

Yo emplearía esta última solución.

Para ver si un empleado, dado por idFicha, tiene tareas pendientes puedes crearte una variable al entrar en el form Proyecto que calcule cuantas filas de tareas hay para ese idFicha con TareaFinalizada = No, o falso. Esas son las tareas pendientes.

Más o menos podría ser:

Dim tareas as integer

tareas = dcount("idTarea","Tareas","idFicha = " & me.openargs & " AND Acabada = " & false)

if tareas >0 then

msgbox "Tiene " & tareas & " pendientes"

Endif

Lo que haces es decirle a Access que cuente cuantas filas hay en la tabla Tareas en las que el número de ficha sea el parámetro de entrada, y que no estén acabadas.

Pruébalo a ver si sale

Te paso el código que hice para enviar mails.

En la ventana de VBA tienes que ir a Herramientas/Referencias y buscar Microsoft CDO for Windows 2000 Library. Tienes que activar el señalador que hay a la izquierda y hacer clic en Aceptar.

Una vez hecho esto puedes invocar a la función que te paso:

Private Function EnviarMail(Asunto As String, mensaje As String, Optional Destinatario As String) As Integer
Dim mail As New CDO.Message
Dim objConf As New CDO.Configuration
objConf.Fields.Item(cdoSMTPConnectionTimeout) = 20
objConf.Fields.Item(cdoSMTPAuthenticate) = cdoBasic
objConf.Fields.Item(cdoSendUserName) = GetParametro("logMailUsuario")
objConf.Fields.Item(cdoSendPassword) = GetParametro("logMailContrap")
objConf.Fields.Item(cdoSMTPServerPort) = 25
objConf.Fields.Item(cdoSendUsingMethod) = cdoSendUsingPort
objConf.Fields.Item(cdoSMTPServer) = GetParametro("logMailServidor")
objConf.Fields.Update
Set mail = New Message
mail.Configuration = objConf
mail.From = GetParametro("logMailRemite")
mail.To = IIf((Destinatario = "" Or IsNull(Destinatario)), GetParametro("logMailDestino"), Destinatario)
mail.CC = GetParametro("logMailCopias")
mail.Subject = Asunto
mail.TextBody = mensaje
mail.Send
End Function

Pruébalo y ya me dirás que tal.

mira lo d elos campos tengo la tabla ejecutor el cula tiene los campos:

idFicha, Nombre_Personal y Clave .

idFicha y Clave contienen los mismos valores (numéricos)porque cuando entran al 1er form entran con idFicha y después a Tarea con el idFicha pero ej yo idFicha 12345 dejo tarea a Clave 54321 por que jaale el valor de idFicha desde el premero hasta tarea y si dejaba el mismo campo em aparecía el mismo valor para asigana una tarea a una persona distinta en esos campso todos son administradores y todos usuarios es decir tanto 12345 y 54321 pueden dejar tareas me explico?? mil gracias experto

experto copie el código pero me manda error que fañta operador es para saber cuantas tareas asignadas o en proceso tiene Clave no idFicha sino Clave perdón gracias

experto copie el código pero me manda error que fañta operador es para saber cuantas tareas asignadas o en proceso tiene Clave no idFicha sino Clave perdón gracias

mm experto para que necesito el dato boleano si tengo un cuadro combinado que se llama idStatus y contiene (Asignada, Proceso y Terminada) donde idFicha da opción de Asignada mira tengo lo siguiente pero no es ecomo expresarlo:

si tengo idFicha y Clave en la tabla Tarea; y yo idFicha=12345 dejo Asignada una tarea Clave=54321.

si yo idFicha=12345 asigno tarea a Clave=54321 y guardo y me salgo de todo.

después Clave accesa al fom Ficha_Usuario con 54321(por que son los mismos valores) y me manda al form Proyecto necesito que en este form me mande el mensaje de que tengo tareas pendientes y que me aparezca en que idTarea para poder consultarlas y realizarlas.

una sentencia de que idStatus sea diferente de terminada pero no se como cargar todas las tareas pendientes el el form Proyecto y que mande el mensaje experto haberme explicado mil gracias esto me esta ayudando demasiado gracias!!!!

Perdona pero me he perdido. No se exactamente que quieres decir.

¿Me lo puedes aclarar un poco?

mira tengo los forms

Ficha_Usuario, Proyecto, Refinería, Tarea y Consulta_Tarea

las Tablas Ejecutor, Tarea, etc no son importantes como estas.

en Ejecutor tengo los campos idFicha, Nombre_Personal y Clave (pero Clave e idFicha tienen los mismos valores) porque yo como idFicha dejo una tarea a Clave ej.

mira yo acceso con idFicha 1234 al form Proyecto y este ya contiene el valor de idFicha solo lo arrastra desp me manda a Ref donde elijo una y me sigue arrastrando el valor de idFicha y est ultimo me manda al form Tarea donde se muestra el idFicha que acceso el proy y ñla Ref pero idFicha asigna una tarea a Clave es por ello que no podía dejar el mismo campo y tube que poner el campo Clave sino yo mismo me dejaría la tarea tengo el cuadro combinando de idStatus que proviene d ela tabla Status_Tarea el cual contiene (Asignada, Proceso y Terminada) idFicha tiene que seleccionar Asignada guarda y sale.

después entra idFicha que seria Clave porque porque a este se le asigno la tarea accesa al form Proyecto y necesito que mande el mensaje que tiene tareas Asignadas con tal idTarea para que no accese a dejar tareas sino que accese al form consulta y busque el idtraea donde tiene la tarea y que la realice y también cuenta con un cuadro combinado de idStatus donde si la termino que seleccione Terminada y cuando vuelva a accesar ya no es emuestre el mensaje ok espero haberme explicado

el código de vía correo donde lo coloco ??? perdón por la ignorancia

Yo creé un form con el aspecto que tiene cualquier programa de correo como Outlook o como Thunderbird y ejecuté EnviarMail desde un botón.

De todos modos puedes colocarlo en un módulo y hacer que la función EnviarMail sea pública en lugar de privada, y de ese modo podrás acceder a ella desde cualquier punto de la aplicación.

Estoy pensando tu anterior pregunta a ver si logro entenderlo. Estoy algo espeso seguramente :-)

experto y aunque tenga el el form tarea el botón enviar?? nada le pongo d eprocediemiento

Vamos a ver si me aclaro de una vez.

Responderé a varios de tus mensajes, me voy componiendo la situación poco a poco.

Como tú bien dices no necesitas el campo booleano, ya tienes idStatus. No sabía que lo tuvieras.

La linea:

tareas = dcount("idTarea","Tareas","idFicha = " & me.openargs & " AND Acabada = " & false)

quedaría como

tareas = dcount("idTarea","Tareas","((idFicha = " & me.openargs & ") AND (idStatus = 'Asignada'))")

Lo de los paréntesis es manía mía, puedes no ponerlos

Si lo entiendo bien puedes ir abriendo sucesivos forms llevando el código de tarea. ¿Cómo lo haces?. ¿Podrías mandarme una captura de pantalla?

Según lo veo yo lo que intentas hacer es abrir otro formulario arrastrando el mismo código. Básicamente es lo mismo que has hecho. Me iría bien saber como lo has hecho para orientarte. Normalmente suelo dar todas las soluciones (u opiniones) basándome en VBA, rara vez lo hago de otro modo, igual está ahí el problema.

Abrir un formulario con datos de otro es siempre lo mismo, se pasa un parámetro y el formulario hijo gestiona la información a partir del dato de entrada.

Mándame algo más de información, una captura o algo así, a ver si puedo entenderlo mejor.

Gracias y disculpa si no te ayudo suficiente, pero es que no lo veo claro.

ok experto pero en vez de idficha es Clave por que a Clave se le asigna la tarea .

pero no es eocmo enviar una imagen upss perodn

experto me marac error con los paréntesis ya le quite y nada mm

escribe tu código aquí

el codigo para jalar el valor es este

del form Ficha Usuario

Private Sub Clave_Usuario_Click()
If IsNull(DLookup("[idFicha]", "[Ejecutor]", "[idFicha]=form!idFicha.value")) = False Then
DoCmd.OpenForm "Proyecto"
Forms![Proyecto]![idFicha] = idFicha
else
MsgBox ("Ficha Incorrecta")
End If
End Sub

experto idFicha =asigna Tarea

Clave=Recibe o realiza Tarea

experto no se que hacer ahhhhhhhhhhh

¿Tienes algún inconveniente en mandarme el archivo y te lo retoco?

pero psdsame tu correo electroncio ok posfis me urge acabarlo uppdss perdon

y mando la bd y un word para unm poco explicarte como esta mi problema mil gracias por la ayuda!!

Ok

Me lo puedes hacer llegar a

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas