Access - Como añadir dirección de correo en el campo CC dentro de una Macro en Outlook

 
Vista:
sin imagen de perfil

Como añadir dirección de correo en el campo CC dentro de una Macro en Outlook

Publicado por Mauricio (2 intervenciones) el 03/01/2024 19:49:40
Buenas tardes:
No cuento con mucho conocimiento en programación, de hecho el código que estoy utilizando me lo compartió un amigo al cual estoy modificando los datos de acuerdo a lo que necesito.

Este código captura un dato del asunto del correo, lo busca en una tabla en access y responde al remitente toda la información relacionada al dato. Mi consulta es saber cómo agregar direcciones de correo en el campo CC (strCC) que están en la tabla Access asociadas al dato que fue capturado inicialmente.

Public DataFinal(1 To 15) As String
Public Function BuscarCliente(SenderX As String, CadenaX As String)
Dim Ruta As String, Conex As String
Dim Cone As New ADODB.Connection
Ruta = "Documents\Prueba.accdb"
Conex = "Data Source=" & Ruta & ";" & "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;Jet OLEDB:Database Password=1234ABCD"
Set Cone = New ADODB.Connection
Cone.ConnectionString = Conex
Cone.Open

Dim RsC As ADODB.Recordset
Set RsC = New ADODB.Recordset
If IsNumeric(CadenaX) Then
RsC.Open "SELECT * FROM Base WHERE CLIV_NUMERO_DOCUMENTO LIKE '%" & CadenaX & "%' ", Cone, adOpenKeyset, adLockBatchOptimistic
Else
RsC.Open "SELECT * FROM Base WHERE NOMBRES LIKE '%" & CadenaX & "%' ", Cone, adOpenKeyset, adLockBatchOptimistic
End If
If RsC.RecordCount < 1 Then
Call FnSendMailSafe(SenderX, "", "", "Búsqueda sin resultados", "No se encontró ningún Cliente en gestión con el " & IIf(IsNumeric(CadenaX), " documento ", "nombre similar al ingresado ") & CadenaX & vbNewLine & vbNewLine & "Se recomienda escribir a")
Else
Dim CantidadEncontrados As Integer
Dim CadenaFinal As String
CantidadEncontrados = 0
CadenaFinal = "<HTML>Se encontraron los siguientes Clientes con el criterio de búsqueda " & IIf(IsNumeric(CadenaX), "(documento)", "(nombres)") & " similar a " & CadenaX & ":" & vbNewLine & vbNewLine
RsC.MoveFirst
Do Until RsC.EOF
CadenaFinal = CadenaFinal & "<BR><BR>" & _
"<TABLE BORDER=1 WIDTH=600>" & _
"<TR><TD>DOCUMENTO: </TD><TD>" & RsC![CLIV_NUMERO_DOCUMENTO] & "</TD></TR>" & _
"<TR><TD>CLIENTE: </TD><TD>" & RsC![NOMBRES] & "</TD></TR>" & _
"<TR><TD>CALLS: </TD><TD>" & RsC![Call] & "</TD></TR>" & _
"<TR><TD> </TD><TD>" & RsC![NUEVO_CALL] & "</TD></TR>" & _
"<TR><TD>AREA: </TD><TD>" & RsC![AREA] & "</TD></TR>" & _
"<TR><TD>DERIVAR A: </TD><TD>" & RsC![DERIVAR] & "</TD></TR>" & _
"</TABLE>" & _
"--------------------" & vbNewLine & vbNewLine
RsC.MoveNext

CantidadEncontrados = CantidadEncontrados + 1
Loop
CadenaFinal = CadenaFinal & "</HTML>Total: " & CantidadEncontrados & IIf(CantidadEncontrados = 1, " cliente encontrado", " clientes encontrados")
Call FnSendMailSafe(SenderX, "", "", "Resultados de la búsqueda " & Now, CadenaFinal)
End If

RsC.Close
Set RsC = Nothing

Cone.Close
Set Cone = Nothing
End Function

Las direcciones de correo están en el campo RsC![DERIVAR] de la tabla Access.

Gracias,
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

Como añadir dirección de correo en el campo CC dentro de una Macro en Outlook

Publicado por Anonimo (3369 intervenciones) el 03/01/2024 21:24:15
La respuesta se centra en obtener y concatenar en una variable de tipo texto, todos los datos que aparezcan en el campo 'Derivar' del recordset 'RsC'.

Se parte del supuesto de que son datos validos para el propósito (direcciones de correo-e) y que necesitan separarse con el separador de listas que se utilice en la configuración regional del sistema (Windows, no Access) que puede ser la coma simple o (en España) el punto y coma (en el ejemplo se utilizara el punto y coma)

En esta parte se precisa una variable de texto mas y no tiene sentido inicializar a cero la variable numérica (por defecto nace con ese valor, al igual que las de texto nacen como una cadena vacía)

Antes_
1
2
3
4
5
........
Dim CantidadEncontrados As Integer
Dim CadenaFinal As String
CantidadEncontrados = 0
.......

Despues_
1
2
3
4
......
Dim CantidadEncontrados As Integer
Dim CadenaFinal As String, Correos As String
.........

En esta parte concatenamos los datos encontrados y añadimos un separador si es necesario (si no es el primer dato):

Antes_
1
2
3
4
5
......
"</TABLE>" & _
"--------------------" & vbNewLine & vbNewLine
RsC.MoveNext
........

Despues_
1
2
3
4
5
6
7
........
"</TABLE>" & _
"--------------------" & vbNewLine & vbNewLine
If Correos <> "" Then Correos = Correos & "; "
Correos = Correos & RsC![DERIVAR]
RsC.MoveNext
........


En la variable CORREOS tenemos una cadena de texto con las direcciones de correo encontradas, separadas por un punto y coma (mas un espacio para mejorar la lectura), disponible para ser utilizada en el lugar que se necesite
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

Como añadir dirección de correo en el campo CC dentro de una Macro en Outlook

Publicado por Mauricio (2 intervenciones) el 03/01/2024 22:22:08
Muchas gracias, seguí los pasos y agregué la variable correo en la línea correspondiente.

El correo copió a dichas direcciones encontradas.

Reitero mi agradecimiento.
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