Salve a tutti ho un problema per l'invio di sms con access. In pratica invio regolarmente sms multipli, ma quando il testo dell'sms supera un tot di caratteri, penso 139, l'sms non parte.
posso aumentare il numero di caratteri da far inviare? Grazie a chi mi può aiutare ad uscire da questa fossa.
Questo è il codice:
........
Do While Not Rs1.EOF
'FORMATTO IL NUMERO DI CELLULARE IN MODO COMPATIBILE CON COMANDI AT AGGIUNGO DOPPIO APICE ALLA FINE DEL NUMERO
CellNew = Rs1.Fields("Cellulare").Value + """"
'CellNew = "3338981807" + """"
'INIZIO CODICE PER INVIO SMS
NewTX "AT" & vbCrLf
NewTX "AT+CMGF = 1" & vbCrLf
NewTX "AT+CMGS = """ & CellNew & vbCrLf 'METODO INVIO SMS CON NUMERO DA RECORDSET AGGIUNGO APICE ALL'INIZIO DEL NUMERO
PauseTime = 1 ' Imposta la durata
Start = 350 ' Imposta inizio
' CICLO PER RITARDARE L'INVIO ALTRIMENTI I DUE COMANDI(AT+CMGS E IL TESTO DEL MESSAGGIO) SI SOVRAPPONGONO
Do While PauseTime <> Start
DoEvents ' Passa il controllo ad altri processi
Start = Start - 1
Loop
NewTX "" & TestoPromo & vbCrLf
NewTX "" & """" & vbCrLf
' CICLO PER RITARDARE L'INVIO TRA GLI SMS
PauseTime1 = 1 ' Imposta la durata
Start1 = 5000 ' Imposta inizio
Do While PauseTime1 <> Start1
DoEvents ' Passa il controllo ad altri processi
Start1 = Start1 - 1
Loop
conta = conta - 1
Rs1.MoveNext
Loop
MsgBox Rs.Fields.Item("ConteggioDiCellulare").Value & " SMS INVIATI", vbInformation
.............
Private Sub NewTX(txtString As String)
' trasmette una stringa (txtString) sulla porta seriale, dopo
' averla impacchettata in un buffer di byte
Dim BytesToBeSent As Long
Dim SentBytes As Long
Dim Buffer() As Byte
Dim i As Long
Dim fSuccess As Integer
Dim ferror As Integer
If txtString = "" Then Exit Sub
BytesToBeSent = Len(txtString)
ReDim Buffer(1 To BytesToBeSent)
For i = 1 To BytesToBeSent
Buffer(i) = Asc(Mid(txtString, i, 1))
Next i
' scrive sulla porta seriale; in particolare, imposta a 0 (NULL)
' l'ultimo parametro della WriteFile, poiche' la comunicazione
' sara' sincrona (non overlapped)
fSuccess = WriteFile(hCom, Buffer(1), BytesToBeSent, SentBytes, 0)
If fSuccess = 0 Then MsgBox "Errore in Tx"
If (fSuccess <> 0) And (SentBytes = BytesToBeSent) Then
FlushFileBuffers (hCom)
Else
ferror = Err.LastDllError
' gestione errore
End If
End Sub