Προς το περιεχόμενο

Αποστολή SMS από την Access με VBA


Pleasure

Προτεινόμενες αναρτήσεις

Δημοσ.

Υπήρχε και σε άλλο Link (http://www.insomnia.gr/vb3/showthread.php?t=148542) αλλά επειδή ο τίτλος δεν ήταν κατάλληλος για την εξέλιξη που είχε η συζήτηση άνοιξα νέο Thread.

 

Λοιπόν χάρη στον κώδικα του φίλου μας του firewalker κατάφερα και έκανα μετατροπές αυτού σε Ms Access VBA έτσι ώστε να στέλνει SMS με οποιοδήποτε κινητό Nokia (δοκιμάστε και άλλα κινητά).

 

Φυσικά θέλει βελτιώσεις όμως οι γνώσεις που είχα (στην μετατροπή αρκετών στοιχείων από τον κώδικα του firewalker όπως το timer που δεν έχει η VBA σαν objectκαι διάφορα άλλα) ΤΕΛΕΙΩΣΑΝ.

 

Θα ήθελα πολύ, εφόσον κλειδώνει το κινητό μέσα από την σειριακή, να μπορούσε να παρακολουθεί τα νέα εισερχόμενα μηνύματα και αυτόματα να τα έδειχνε σε κάποιο Text box (και τον παραλήπτη σε κάποιο άλλο Text Box). Μάλιστα έχει την δυνατότητα να διαβάζει και IRDA - BlueTooth.

 

Αν ξέρει ο φίλος μας ο firewalker ας βοηθήσει. Επιτέλους ανοικτός κώδικας για όλο τον κόσμο. Το SMS θα δώσει σπουδαίες λύσεις στους Users - Programmers.

 

Συγχαρητήρια firewalker για την βοήθειά σου : +1000

 

Περιμένω την βοήθειά σας για την υλοποίηση της αυτόματης ανάγνωσης.

 

Φανταστείτε τί θα μπορούσαμε να στήσουμε με αυτό τον τρόπο. Για παράδειγμα στα δικά μας προγράμματα ένα δικό μας σετ εντολών που θα αποστέλλουμε με το κινητό μας. Οι εντολές που θα στέλνονται με SMS θα διαβάζονται από το κινητό - πρόγραμμα και αυτό θα "τρέχει" κάποια πχ SQL και θα απαντά (πάλι με SMS) ή οτιδήποτε άλλο βάζει ο νούς σας.

 

Αν μπορείται βοηθήστε ....

Communications With Serial Ports Via API.zip

MS ACCESS SMS SEND.zip

Δημοσ.

Ίσως θα μπορούσε να γίνει μέσω ενός Timer Loop που θα στέλνει συνεχώς κάποιο Set εντολών στο κινητό και στη συνέχεια αν δει πως υπάρχει κάτι νέο να το διαβάζει και να το διαγράφει (με άλλο set εντολών AT) από το κινητό.

 

Όπως είπε και ο Firewalker: "Αυτό που ζητάς εξαρτάτε από το κινητό. Για παράδειγμα στα SE κάθε νέο εισερχόμενο μήνυμα αλλάζει την τιμή ενός register στην μνήμη του κινητού είτε το μήνυμα αποθηκεύετε στην sim είτε στο κινητό. Κάνοντας λοιπόν τον έλεγχο στον καταχωρητή αυτόν με τις κατάλληλες AT εντολές μπορείς να "τραβάς" κάθε μήνυμα στην εφαρμογή και μετά να δίνεις εντολή για να σβήσει το μήνυμα. Κάτι τέτοιο στα SE είναι αρκετά "εύκολο". Υπάρχει μία εφαρμογή που το κάνει για SE σε assembly βέβαια για μικροελεκτή AVR της Atmel. Η βασική ιδέα είναι ίδια. Θα προσπαθήσω όταν βρω χρόνο να το "δω" λίγο σε συνδιασμό με vb και vba.

 

http://www.serasidis.gr/circuits/sms...controller.htm"

 

 

Επομένως κάτι ίσως ... κάποιος να μπορεί να κάνει κάτι (φανταστείτε αυτό να το φτιάχναμε ActiveX Control) !!!

Δημοσ.

Υπάρχει και αυτός ο τρόπος (αρκεί να συνδέουμε μέχρι την Serial μπου μπορεί να βρεί το MSCOMM).

 

'Δεσμεύουμε κάποιες μεταβλητές που θα χρειαστούμε

Dim strPhoneNumber As String

Dim strMessage As String

 

'Κάνουμε κάποιες ρυθμίσεις στο ActiveX control της σειριακής

With MSComm1

.CommPort = 1 'Αυτό αλλαξέ το σε 2 αν συνδέσεις το κινητό στην COM2

.DTREnable = False

.EOFEnable = False

.RTSEnable = False

.InputLen = 0

.RThreshold = 1

.SThreshold = 1

.Settings = "9600,n,8,1"

End With

 

strPhoneNumber = "6977123456" 'Ο αριθμός του παραλήπτη

strMessage = "Test message" 'Το κείμενο που θέλουμε να στείλουμε

 

'Ανοίγουμε την σειριακή θύρα

MSComm1.PortOpen = True

 

'Στέλνουμε στο κινητό ρύθμιση για γραπτό μήνυμα κειμένου

MSComm1.Output = "AT+CMGF=1" & vbCr

 

'Στέλνουμε στο κινητό το νούμερο του παραλήπτη

MSComm1.Output = "AT+CMGS=" & Chr(34) & strPhoneNumber & Chr(34) & vbCr

 

'Δημιουργούμε τεχνητά μια καθυστέρηση που θα χρειαστεί το κινητό, περίπου 1 sec.

'Αν ο υπολογιστής είναι πολύ γρήγορος, αύξησε τον αριθμό 30000000 σε μεγαλύτερο

Dim I

For I=1 To 30000000

DoEvents

Next I

 

'Στέλνουμε το κείμενο του μηνύματος και τον ειδικό χαρακτήρα τέλους για να φύγει το SMS

MSComm1.Output = strMessage & Chr(26)

 

'Κλείνουμε την σειριακή

MSComm1.PortOpen = False

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...