Imprimir página | Cerrar ventana

Envio de WhatsApp con varios registros

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86904
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: Envio de WhatsApp con varios registros
Publicado por: Benito Bartolomé
Asunto: Envio de WhatsApp con varios registros
Fecha de publicación: 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.
" rel="nofollow -

¿Seria posible implementarlo así, o se os ocurre otra alternativa?

No se si la ruta para descargar el archivo está bien. No veo otra forma de subir el archivo.
Archivo: http://drive.google.com/file/d/1z4RA-FrR_NAMlxCcO3tHfOGBwQKSkRiI/view?usp=drive_link" rel="nofollow - http://drive.google.com/file/d/1z4RA-FrR_NAMlxCcO3tHfOGBwQKSkRiI/view?usp=drive_link

Saludos


-------------
benito bartolome



Respuestas:
Publicado por: Benito Bartolomé
Fecha de publicación: 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


Publicado por: Benito Bartolomé
Fecha de publicación: 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


-------------
benito bartolome


Publicado por: javier.mil
Fecha de publicación: 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 ?


-------------
https://www.accessdemo.info" rel="nofollow - https://www.accessdemo.info





Publicado por: Benito Bartolomé
Fecha de publicación: 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


Publicado por: JuanW
Fecha de publicación: 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



Imprimir página | Cerrar ventana