** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Envio de WhatsApp con varios registros
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Envio de WhatsApp con varios registros

 Responder Responder
Autor
Mensaje
Benito Bartolomé Ver desplegable
Nuevo
Nuevo


Unido: 05/Abril/2024
Localización: Nigrán
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Benito Bartolomé Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Envio de WhatsApp con varios registros
    Enviado: 08/Abril/2024 a las 11:53
Hola a todos(as).
Soy nuevo en este foro.
He creado un procedimiento para enviar WhastApp desde Access y lo hace bien y es este:
Private Sub btnEnviarW_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim whatsappWebURL As String
    Dim varPrefijo As String
    Dim varMensaje As String
    Dim respuesta As VbMsgBoxResult
    Dim strSQL As String

    ' Asignar el prefijo del país
    varPrefijo = "+34"
   
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT tb_pendientes.*, tb_cliente.telefono,tb_cliente.nombre " & _
                              "FROM tb_pendientes INNER JOIN tb_cliente ON tb_pendientes.nºcliente = tb_cliente.nºcliente " & _
                              "WHERE tb_pendientes.fechaVto <= Date()")

    respuesta = MsgBox("¿Quiere enviar el WhatsApp para los registros encontrados?", vbQuestion + vbYesNo, "Enviar WhatsApp")

    If respuesta = vbYes Then
        If Not rs.EOF Then
            Do Until rs.EOF
                If Not IsNull(rs("telefono")) Then
                    varMensaje = "EMPRESA - Aviso de vencimiento." & vbCrLf & _
                                   " Estimado(a) " & rs("nombre") & ";" & vbCrLf & _
                                   "Le recordamos que la albaran numero: " & rs("nºdocumento") & " con fecha: " & rs("fecha") & " y de importe: " _
                                   & rs("importe") & " ha vencido el dia: " & rs("fechaVto") & "." & vbCrLf & _
                                   "P.D: OJO, aviso solo por su facturas vencimiento." & vbCrLf & _
                                   "Saludos."
                    ' Construir el URL
                    whatsappWebURL = "https://web.whatsapp.com/send?phone=" & varPrefijo & rs("telefono") & "&text=" & varMensaje
                    ' Abrir WhatsApp
                    FollowHyperlink whatsappWebURL
                    ' Retardo
                    Sleep (12000)
                    SendKeys "{ENTER}", True
                    ' Activar la tecla "Bloq Num"
                    SendKeys "{NUMLOCK}", True
                End If
                ' Incrementar el campo "aviso" en la tabla tb_pendientes
                strSQL = "UPDATE tb_pendientes SET aviso = IIf(IsNull(aviso), 1, aviso + 1) WHERE Id_Pendiente = " & rs("Id_Pendiente")
                db.Execute strSQL
                rs.MoveNext
            Loop
            ' Cerrar WhatsApp
            SendKeys "%{F4}", True ' Alt + F4
        Else
            MsgBox "No se encontraron registros para enviar.", vbInformation, "Enviar WhatsApp"
        End If
    End If

    ' Cerrar el recordset
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

CONSULTA:
La consulta es la siguiente, si tengo varios registros que cumplen la misma condición quería enviarlos juntos.



Saludos
benito bartolome
Arriba
Benito Bartolomé Ver desplegable
Nuevo
Nuevo


Unido: 05/Abril/2024
Localización: Nigrán
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Benito Bartolomé Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Abril/2024 a las 12:20
Veo que no cargo la imagen, lo pongo como texto:

Resultado que muestra ahora:

EMPRESA - Aviso de vencimiento. Estimado(a) BENITO;Le recordamos que la albaran numero: 555555 con fecha: 05/04/2024 y de importe: 12,25 ha vencido el dia: 05/04/2024.P.D: OJO, aviso solo por su facturas vencimiento.Saludos

EMPRESA - Aviso de vencimiento. Estimado(a) BENITO;Le recordamos que la albaran numero: 333333 con fecha: 05/04/2024 y de importe: 600,26 ha vencido el dia: 05/04/2024.P.D: OJO, aviso solo por su facturas vencimiento.Saludos

 

Bueno decir que estoy con pruebas y “albaran” será cambiado por “factura”

Resultado que deseo conseguir:

EMPRESA - Aviso de vencimiento. Estimado(a) BENITO;Le recordamos que el

 albaran numero: 555555 con fecha: 05/04/2024 y de importe: 12,25 ha vencido el dia: 05/04/2024.

albaran numero: 333333 con fecha: 05/04/2024 y de importe: 600,26 ha vencido el dia: 05/04/2024.

P.D: OJO, aviso solo por su facturas vencimiento.Saludos


benito bartolome
Arriba
Benito Bartolomé Ver desplegable
Nuevo
Nuevo


Unido: 05/Abril/2024
Localización: Nigrán
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Benito Bartolomé Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Abril/2024 a las 15:53
Creo haberlo resuelto en parte.
CODIGO:
Private Sub btnEnviarW_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim rsClientes As DAO.Recordset ' Declarar el recordset para clientes
    Dim whatsappWebURL As String
    Dim varPrefijo As String
    Dim varTelefono As String ' Cambiar el tipo de dato a String
    Dim varMensaje As String

    ' Asignar el prefijo del país
    varPrefijo = "+34"
    
    ' Abrir B.D.
    Set db = CurrentDb
    
    ' Abrir un recordset para obtener los números de teléfono de los clientes
    Set rsClientes = db.OpenRecordset("SELECT nºcliente, telefono FROM tb_cliente")
    varTelefono = rsClientes("telefono") ' Obtener el teléfono del primer cliente

    ' Cerrar el recordset de clientes
    rsClientes.Close
    Set rsClientes = Nothing
    
    varPrefijo = varPrefijo & varTelefono

    ' Abrir un recordset: tb_pendientes y tb_cliente
    Set rs = db.OpenRecordset("SELECT tb_pendientes.*, tb_cliente.telefono, tb_cliente.nombre " & _
                              "FROM tb_pendientes INNER JOIN tb_cliente ON tb_pendientes.nºcliente = tb_cliente.nºcliente " & _
                              "WHERE tb_pendientes.fechaVto <= Date()")
    respuesta = MsgBox("¿Quiere enviar el WhatsApp para los registros encontrados?", vbQuestion + vbYesNo, "Enviar WhatsApp")

    If respuesta = vbYes Then
    mensajeTotal = ""
    Dim contador As Integer
    contador = 1

    ' Verificar si hay registros
    If Not rs.EOF Then
        Do Until rs.EOF
            If Not IsNull(rs("telefono")) Then
                ' Construir el mensaje
                varMensaje = "MENSAJE: " & contador & " EMPRESA - Aviso de vencimiento." & vbCrLf & _
                             " Estimado(a) " & rs("nombre") & ";" & vbCrLf & _
                             "Le recordamos que la factura numero: " & rs("nºdocumento") & " con fecha: " & rs("fecha") & _
                             " y de importe: " & rs("importe") & " ha vencido el dia: " & rs("fechaVto") & "." & vbCrLf & _
                             "P.D: OJO, aviso solo por sus facturas vencimiento." & vbCrLf & _
                             "Saludos.     "
                ' Mostrar mensaje a enviar
                MsgBox varMensaje, vbInformation, "Mensaje WhatsApp"
                mensajeTotal = mensajeTotal & varMensaje
                ' Incrementar el contador
                contador = contador + 1
            End If
            rs.MoveNext ' Siguiente registro
        Loop

        ' Construir el URL completo
        whatsappWebURL = "https://web.whatsapp.com/send?phone=" & varPrefijo & "&text=" & mensajeTotal

        ' Abrir WhatsApp para cada destinatario
        FollowHyperlink whatsappWebURL

        ' Retardo
        Sleep (12000)
        SendKeys "{ENTER}", True
        ' Activar la tecla
        SendKeys "{NUMLOCK}", True

    Else
        MsgBox "No hay registros que cumplen con la condición."
    End If
    Else
        MsgBox "Se ha cancelado el envio."
    End If


Editado por Benito Bartolomé - 08/Abril/2024 a las 15:57
benito bartolome
Arriba
javier.mil Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2005
Localización: España
Estado: Sin conexión
Puntos: 4856
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita javier.mil Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Abril/2024 a las 22:07
Publicado originalmente por Benito Bartolomé Benito Bartolomé escribió:

Creo haberlo resuelto en parte.


¿ Cual es la parte No resuelta ?
Arriba
Benito Bartolomé Ver desplegable
Nuevo
Nuevo


Unido: 05/Abril/2024
Localización: Nigrán
Estado: Sin conexión
Puntos: 7
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Benito Bartolomé Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Abril/2024 a las 23:31
Hola Javier;
Pues el resultado que quiero obtener es el siguiente a modo de ejemplo.

-Aqui el encabezado
-Detalle:
Nombre, CTA cliente, fecha, importe, etc.
(Sí hay más de 1 registro irán aquí

Aquí?

-Pie o despedida mensaje

Que el encabezado y pié sólo se repita una vez.

Sí en el detalle hay más de un registro se hace un bucle.

Saludos y gracias
benito bartolome
Arriba
JuanW Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 12/Mayo/2005
Localización: España
Estado: Sin conexión
Puntos: 267
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita JuanW Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 22/Abril/2024 a las 10:14
Al enviar según este procedimiento te obligas a estar identificado con tu WhatsApp en el explorador web.

¿hay alguna forma de enviarlos desde la web sin tener abierta ninguna sesión en un explorador?

¿sería posible con la aplicación de pago?

¿Cuánto costaría?

Saludos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable