| » SMS da Access | » SMS da C# .NET | » SMS da Visual Basic (VB6) |
| » SMS da Excel | » SMS da ASP .NET | » SMS da Visual C++ |
SMS Tutorials > Questo tutorial illustra come inviare e ricevere SMS dalla tabelle di un database Access, utilizzando SMSLibX (libreria DLL ActiveX) e un modem o telefono GSM.
Note preliminari :
Le tabelle più importanti del database sono TPhonebook (rubrica) e TMessages (contenente tutti i messaggi SMS classificati tramite il campo MessageStatus).
Le seguenti queries (semplici filtri su TMessages) possono essere utilizzate come se fossero normali tabelle:
Database Query |
Filtra TMessages su... | Contiene... |
| QMessagesSent | MessageStatus="Sent" | Messaggi inviati |
| QMessagesReceived | MessageStatus="Received" | Messaggi ricevuti |
| QUnread | Unread=true | Messaggi non letti |
| QMessagesOutbox | MessageStatus="TO SEND" (or null) | Messaggi da inviare |
I telefoni Nokia e Symbian più recenti non permettono la lettura degli SMS ricevuti su PC tramite comandi AT (la tecnologia che utilizza il nostro software).
Con questi dispositivi sarà possibile inviare ma non ricevere SMS da PC, a meno di utilizzare il software originale fornito dal costruttore.
Per vedere il codice sorgente VBA utilizzato per inviare/ricevere SMS, cliccare sul menu Strumenti > Macro > Visual Basic editor. Nel prossimo capitolo imparerete come inviare/ricevere SMS da VBA.
Il database di esempio e relativo codice sorgente VBA possono essere estesi ed utilizzati liberamente, come parte delle vostre applicazioni.
E' possibile ad esempio:
SMS&Co declina ogni responsibilità su possibili conseguenze associate all'uso di questo esempio e/o del proprio software SMS.
Questa sezione è dedicata agli sviluppatori Access/VBA.
Impareremo come:
Ora siete pronti ad utilizzare oggetti e metodi esposti da SMSLibX nel vostro codice sorgente:
Per apprendere in 5 minuti le basi di programmazione di SMSLibX,
vi invitiamo a leggere la Quick Start Guide presente nell'Help di SMSLibX.
Il seguente codice sorgente VBA può essere utilizzato all'interno di una form Access o modulo di classe, per l'invio e la ricezione di SMS.
' Declare SMSModem object Public WithEvents Modem As SMSModem ' Send SMS Private Sub cmdSendMessage_Click() ' Open modem communication Set Modem = New SMSModem Modem.LogTrace = True Modem.OpenComm gsmModemSimulator, 3, , smsNotifyAll ' Send message Call Modem.SendTextMessage("+393401234567", "Hello world") End Sub ' Receive SMS by event Private Sub Modem_MessageReceived(Message As SMSLibX.SMSDeliver) MsgBox "New message received from " & Message.Originator & ":" _ & vbCrLf & vbCrLf & Message.Body, _ vbInformation, "New message received" End Sub
Osservazioni:
SMSModem è l'oggetto più importante della libreria SMSLibX.WithEvents consente di catturare gli eventi generati da SMSModem. OpenComm, dovete sostituire il parametro gsmModemSimulatorgsmModemSiemens, gsmModemNokia,...)
eventualmente sfruttando l'auto-completamento del codice.3 (= COM3) con l'effettiva porta COM associata al vostro modem.
Leggere attentamente queste note, importanti per un buon utilizzo di SMSLibX nei vostri programmi!
Molti non sanno che... mentre c'è una MsgBox o InputBox aperta nella vostra applicazione, VBA sopprime gli eventi generati da timers, forms, controlli e componenti ActiveX. Gli eventi non vengono semplicemente posticipati, ma definitivamente soppressi (vedi Microsoft Knowledge Base, articolo 76557).
A causa di questo comportamento, potreste perdere le notifiche di SMS ricevuto (ed altri eventi) qualora questi vengano generati mentre c'è una MsgBox aperta – eventualità che voi non potete controllare, in quanto dipende dall'utente.
Come work-around è possibile ridefinire la funzione MsgBox
di VBA, rimpiazzandola con la MessageBox API di Windows che non sopprime alcun evento (vedi Microsoft Knowledge Base, articolo 76557).
Un esempio concreto di ridefinizione di MsgBox è presente nel database di esempio fornito con questo tutorial.
Se la vostra applicazione VBA esegue dei cicli su liste di messaggi da
inviare, oppure implementa operazioni di lunga durata, si raccomanda di
inserire un'istruzione DoEvents nel ciclo (o nelle altre operazioni
di lunga durata).
Questo permetterà ad SMSLibX di generare gli eventi in tempo reale, notificando messaggi ricevuti, rapporti di consegna, stati del modem ecc. senza ritardo.
E' buona norma non inserire operazioni di lunga durata nel codice VBA di gestione eventi generati da SMSLibX (ad es. MessageReceived), poiché SMSLibX fa affidamento sul medesimo thread di notifica eventi, per la gestione e notifica di ulteriori messaggi.
A grandi linee, la gestione di un evento non dovrebbe impiegare più di 1 secondo.
Se dovete inviare un SMS di risposta automatica per ogni SMS ricevuto, una buona pratica consiste nel: (a) creare e salvare il messaggio di risposta in una tabella (b) scrivere un metodo separato, attivato da un timer (ad es. ogni 15-30 secondi) per processare la coda di invio messaggi.
In questo modo non si appesantisce l'evento di ricezione con i 3-4 secondi necessari per l'invio SMS.
Se SMSLibX non è correttamente registrato sul vostro sistema, all'apertura del database di esempio possono verificarsi i seguenti errori:
Per risolvere il problema, verificare che SMSLibX sia stato precedentemente installato sul vostro sistema – quindi, se necessario, reimpostare il riferimento a SMSLibX.dll come indicato nella prima parte di questo tutorial.
Per altri problemi consultare la sezione Troubleshoothing dell'Help SMSLibX.
18 mar 2013 - Viste le numerose richieste abbiamo reso disponibile un ultimo lotto di questo modem (fuori produzione dal 2010). Contattateci se interessati.
15 mar 2013 - Il modem Digicom Wave GPRS è ora sostituito da Digicom Wave GPRS M.
15 mar 2013 - Il modem Audiotel Modex GPRS (fuori prod. dal 2011) è ormai esaurito. Sostituibile con Audiotel Modex EDGE opp. Digicom Wave GPRS M.
12 gen 2011 - I modem Siemens TC35i e MC35i sono ora sostituiti dal nuovo Cinterion MC55i.
12 gen 2011 - Il modem Audiotel Industrial è ora ora sostituito dal nuovo Urmet Industrial.
19 mag 2010 - Pronte da scaricare le nuove versioni SMSLibX 2.6 e SMSList 2.14.
- Gruppi di lavoro
Mantieni il contatto con colleghi e clienti in mobilità tramite SMS.
- Mobile marketing
Rinnova la comunicazione verso il mercato utilizzando i messaggi SMS.
- Servizi ed associazioni
Contatta sottoscrittori ed associati tramite SMS.
- Studi commercialisti
Ricorda tramite SMS adempimenti e scadenze.
- Studi dentistici
Invia un SMS di promemoria per gli appuntamenti.
- Scuole ed Università
Mantieni il contatto con studenti e genitori via SMS.
Impara come inviare SMS e ricevere SMS con SMSLibX:
Le nostre soluzioni per inviare e ricevere SMS:
Creare una lista di messaggi SMS ed inviarla a multipli destinatari con SMSList.
Come integrare SMSLibX nelle vostre pagine web (ASP o altre tecnologie server-side) per inviare e ricevere SMS dal vs. sito.
Con SMSLibX aggiungi ai tuoi fogli Excel e database Access la capacità di inviare e ricevere SMS.