Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Отправка смс из ms access


Автор: Malua321 4.8.2013, 13:11
Здравсвуйте.
Помогите переделать код vba так, чтобы при отправке смс информация бралась из запроса "отбор" (номер тел., на который будет отправляться смс, и вся инф. об объекте). И как сделать так, чтобы при добавлении клиента смс с инф. отправлялось автоматически и так же при добавлении нового объекта, (если он подходит по запросу клиента) этот вариант отправлялся ему.
И еще подскажите, как можно сделать ограничение по количеству отправленных смс одному клиенту (например, не более 300).
Заранее большое спасибо. Я просто новичок в этом вопросе.
Код

Option Compare Database
 
Private Sub Кнопка0_Click()
 
 
  If SMS("79087964781", "Привет") Then MsgBox ("Сообщение отправленно") Else MsgBox SMSError()
 
End Sub
 
 
' Функция для отправки SMS [url]http://www.smspilot.ru/apikey.php[/url]
Public Function SMS(Phone As String, Text As String) As Boolean
 
  SMS = False
 
  Set HttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
 
  URL = "http://smspilot.ru/api.php"
  URL = URL & "?send=" & URLEncode(Text)
  URL = URL & "&to=" & Phone
 
  ' Своя подпись
  ' URL = URL & "&from=smspilot"
 
  ' (!) Заменить на свой API-ключ
  URL = URL & "&apikey=XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ"
 
  URL = URL & "&charset=windows-1251"
 
  If HttpReq.Open("GET", URL, False) <> 0 Then
    SMSError ("Connection error")
    Exit Function
  End If
  If HttpReq.Send() <> 0 Then
    SMSError ("Open URL " & URL & " error")
    Exit Function
  End If
 
  If Left$(HttpReq.responseText, 7) <> "SUCCESS" Then
    SMSError (HttpReq.responseText)
    Exit Function
  End If
 
  SMS = True
  SMSError ("")
 
End Function
 
 
' Функция для хранения последней ошибки
Public Function SMSError(Optional SetErr As String = "") As String
    Static Err
    If SetErr <> "" Then Err = SetErr
    SMSError = Err
End Function
 
 
' Кодирование URL Параметров [url]http://ru.wikipedia.org/wiki/URL[/url]
Public Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String
 
  Dim StringLen As Long: StringLen = Len(StringVal)
 
  If StringLen > 0 Then
    ReDim result(StringLen) As String
    Dim i As Long, CharCode As Integer
    Dim Char As String, Space As String
 
    If SpaceAsPlus Then Space = "+" Else Space = "%20"
 
    For i = 1 To StringLen
      Char = Mid$(StringVal, i, 1)
      CharCode = Asc(Char)
      Select Case CharCode
        Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
          result(i) = Char
        Case 32
          result(i) = Space
        Case 0 To 15
          result(i) = "%0" & Hex(CharCode)
        Case Else
          result(i) = "%" & Hex(CharCode)
      End Select
    Next i
    URLEncode = Join(result, "")
  End If
End Function

Автор: Rodman 13.8.2013, 11:00
Добрый день
1. На сколько я знаю данные берутся из таблицы или запроса по одному и тому же принципу. 
2. Чтобы при добавлении клиента отправлялась куда то информация - надо просто макрос на добавление повесить и этот макрос должен запускать код с отправкой
3. А ограничение: надо хранить данные об смсках... и оттуда считать количество.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)