Автоматически вставлять имена отдельных членов и их суммы в текст сообщения и отправлять в виде SMS на их соответствующие номера - PullRequest
0 голосов
/ 07 апреля 2020

Этот вопрос о BulkSMS Messaging. Отправка одного и того же сообщения разным контактам прошла успешно. Проблема в том, как я могу персонализировать сообщение, чтобы отправить его соответствующим получателям. Например, при отправке сообщения я хотел бы, чтобы код доступа vba автоматически вставлял имена отдельных участников и их суммы в тело сообщения и отправлял их соответствующие номера.

Что-то вроде этого; (Уважаемый [NameField], ваш [AmountField] был получен. Спасибо.)

Обновлено: Ниже описана процедура sSendMessage Я звоню, чтобы отправить мои сообщения. Как это работает, есть кнопка, которая при щелчке заполняет текстовое поле ttcontact MembersNumbers. Затем пользователь набрал сообщение в текстовом поле ttmessage и, отправив его, затем использует процедуру sSendMessage, чтобы отправить сообщение в ttmessage контактам в ttcontacts. С тех пор как вы (@ Applecore) ответили на мой вопрос, я пытался обойти это, но не знаю, с чего начать. На этот раз также не будет ttmessage и ttcontact для пользователя для вводимых данных, каждая информация будет выбрана из таблицы tblMember и уникально отправлена ​​их соответствующим контактам. Не могли бы вы, возможно, взглянуть на мои sSendMessages и проверить, как он может вызываться sSend2Member для посылки сообщения построчно, пока оно не достигнет последней записи.

Private Sub sSendMessages()

    Dim myURL As String
    Dim sender As String
    Dim contact As String
    Dim msg As String
    Dim postData As String
    Dim winHttpReq As Object

    apikey = "xxxxxxxxxxxxx"
    sender = Me.ttSender.Value
    contact = Me.ttContact.Value
    msg = Me.ttMessage.Value


   Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

    myURL = "https://apps.mnotify.net/smsapi?key=" & apikey & "&to=" & contact & "&msg=" & msg & "&sender_id=" & sender

        postData = "key=" + apikey _
        + "&to=" + contact _
        + "&msg=" + msg _
        + "&sender_id=" + sender

    winHttpReq.Open "POST", myURL, False
    winHttpReq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    winHttpReq.send (postData)

    SendSMS = winHttpReq.ResponseText
    MsgBox SendSMS

    End If
End Sub

1 Ответ

0 голосов
/ 07 апреля 2020

Если вы уже создали процедуру, отправляющую сообщение (например, sSendMessage), вы можете изменить ее так, чтобы она принимала номер и сообщение. После этого вы можете получить такой код, который принимает поле идентификатора из таблицы участников, а затем вызывает sSendMessage:

Sub sSend2Member(lngMember As Long)
    On Error GoTo E_Handle
    Dim db As DAO.Database
    Dim rsData As DAO.Recordset
    Dim strMsg As String
    Set db = DBEngine(0)(0)
    Set rsData = db.OpenRecordset("SELECT * FROM tblMember WHERE MemberID=" & lngMember)
    If Not (rsData.BOF And rsData.EOF) Then
        strMsg = "Dear " & rsData!MemberName & ", "
        strMsg = strMsg & "your " & Format(rsData!MemberAmount, "#0.00") & " has been received. Thank you."
        Call sSendMessage(rsData!MemberNumber, strMsg)
    End If
sExit:
    On Error Resume Next
    rsData.Close
    Set rsData = Nothing
    Set db = Nothing
    Exit Sub
E_Handle:
    MsgBox Err.Description & vbCrLf & vbCrLf & "sSend2Member", vbOKOnly + vbCritical, "Error: " & Err.Number
    Resume sExit
End Sub

Если вы отправляете 6 участникам, вы вызываете эту процедуру для каждого из 6 членов.

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...