![]() |
Πρόβλημα με την ομαδική αποστολή SMS 1 Συνημμένο(α) Kαλήμέρα σε όλη στην κοινότητα Στη φόρμα SMS στο κώδικα Κώδικας: Private Sub Εντολή9_Click()Μπορώ να στέλνω μηνύματα ένα -ένα.Θέλω ο΄μως να στέλνω ολα μαζι με ένα checkbox που έχω βάλει για να τα επιλέγει.Το προβλημάμου είναι στο Loop για να στέλνονται όλα μαζί ή όσα έχω επιλέξει απο με τα Checkboxes.Στέλνω δείγμα της βάσης για βοήθεια. Ευχαριστώ εκ των προτέρων για τις αλλεπάλληλες βοήθειες των μελών Φιλικά Αλέξανδρος |
Kαλησπέρα σε όλους τους φίλους Εχω κάνει κάποιες αλλαγές στον παρακάτω κώδικα Κώδικας: Private Sub CmdCheckAll_Click()Φιλικά/Αλέξανδρος |
Αλέξανδρε καλησπέρα! Πριν από ένα χρόνο περίπου είχα προγραμματίσει πάνω στο ίδιο αντικείμενο για ένα λογιστικό γραφείο σε Access και VB.NET. Πριν προχωρήσεις στην αυτοματοποίηση της μαζικής αποστολής SMS, θα πρέπει να ετοιμάσεις πίνακες που όπου θα καταγράφεται το ιστορικό της αποστολής ανά πελάτη. Όταν στέλνεις ένα SMS, αρχικά ο Server θα σου πιστοποιήσει ότι το παρέλαβε (SMSPost1.SMSResponse). Μόνο με την πληροφορία αυτή δεν μπορείς γνωρίζεις το αν και το πότε ένα μήνυμα απεστάλη στον παραλήπτη. Κανονικά θα πρέπει να δημιουργήσεις τους κατάλληλους πίνακες όπου θα καταγράφεις:
Δεν θα εμβαθύνω το θέμα στο σημείο αυτό γιατί δεν είναι τόσο απλό όσο φαίνεται. Ο παρακάτω κώδικας, μπορεί να στείλει μαζικά SMS. Το πόσα πολλά μπορεί να στείλει κάθε φορά εξαρτάται από το ίδιο το Activex. Εγώ προσωπικά χρησιμοποίησα τον Internet Explorer αντί για το Activex χωρίς βέβαια αυτό να σημαίνει ότι το δεύτερο δεν λειτουργεί. Απλά θέλησα να αποφύγω την εγκατάσταση του Activex στον υπολογιστή προορισμού. Ο παραδειγματικός κώδικας προϋποθέτει τους πίνακες Customers και tblServerResponces με τα εξής πεδία: Πίνακας Customers:
Κώδικας: Option Compare DatabaseΦιλικά Τάσος |
1 Συνημμένο(α) Kαλησπέρα Τάσο Κατ'αρχήν σ'ευχαριστώ για τις αλλεπάλληλες βοήθειες που έχω λάβει. Τελικά από ότι κατάλαβα πρέπει να κάνω διαχείριση αποστολής SMS. Τα SMS είναι μόνο εξερχόμενα δεν λαμβάνω μηνύματα.Σε μία δοκιμαστική που έκανα σε μήνυμα αποστολής ένα- ένα ο Server μου απάντησε ότι στάλθηκε επιτυχώς.Για να έχω όμως την επιβεβαίωση ως καταγραφή σε πίνακα θα πρέπει να συνεργαστώ με τον Server.Έτσι δεν είναι;Αυτό βέβαια είναι πολύπλοκο όπως και αναφέρεις.Το καλό είναι ότι με τον Ιnternet Explorer εξαρτάσαι μερικώς από την εταιρεία και δεν είσαι υποχρεωμένος να εγκαταστήσειςActive X Dll με επωνυμία Εταιρείας και το σπουδαιότερο δεν θα βγάζει λογότυπο της εταιρείας, θέλω να πιστεύω. Τώρα εάν χρησιμοποιήσω τον δικό σου κώδικα θα φτιάξω τους δύο πίνακες. και την φόρμα όπως έχει;Δεν θα έχω λες πρόβλημα; Την άλλη εβδομάδα θα αγοράσω 1000 μηνύματα και θα το δοκιμάσω με τον δικό σου τρόπο. Εάν δεν στέλνει τότε έχω την δική μου επιλογή να χρησιμοποιήσω το Active Χ . Αφού με επιβεβαίωσες ότι το έχω σωστά το Loop τουλάχιστον και στέλνει μαζικά __________________________________________________ ___- Να σε ρωτήσω και κάτι άλλο καμία σχέση με το αντικείμενο που συζητήσαμε. Στη βάση αυτή πρόσθεσα στη φόρμα SMS ένα κουμπί εντολής για backGround και έφτιαξα μια δική μου παλέτα χειροποίητα με χρώματα να αλλάζει το φόντο της βάσης.Επειδή όμως παιδεύτικα πάρα πολύ και έκανα και λάθος σε μερικά χρώματα θα ήθελα να ρωτήσω.Το ερώτημα είναι: Πώς μπορώ να ανοίξω την παλέτα των χρωμάτων της ζωγραφικής για να αλλάζω προγραμματιστικά το φόντο κάποιας φόρμας και όχι της βάσης; Ίσως χρειαστεί να μεταφερθεί το θέμα. Στέλνω μια βάση να δείς τι έχω κάνει(με λίγα Βytes γιατί δεν την φορτώνει αυτή που χρησιμοποίσα) και αν υπάρχει η δυνατότητα αυτή που περιέγραψα. Φιλικά Αλέξανδρος |
Καλησπέρα Αλέξανδρε! Όταν ο Server, με τη χρήση του SMSPost1.SMSResponse σου επιστρέφει "delivered", εννοεί ότι το μήνυμα σου προς τον Server στάλθηκε επιτυχώς. Όχι το μήνυμα σου προς τον παραλήπτη. Oι πιθανές ανταποκρίσεις του Server είναι:
Για να επιλέξεις χρώμα από την παλέτα των χρωμάτων της ζωγραφικής στην Access χρησιμοποίησε: Κώδικας: Private Declare Sub ChooseColor Lib "msaccess.exe" Alias "#53" ( _ |
Καλημέρα Τάσο Ευχαριστώ πολύ για όλα.θα τα δοκιμάσω με την παραλαβή των μηνυμάτων θα ενημερώσω για την λειτουργία των SMS Φιλικά Αλέξανδρος |
Καλημέρα στην κοινότητα, καλό μήνα σε όλους Καλημέρα Τάσο Μη αφήνοντας σε εκκρεμότητα τα λεγόμενα μου με την διεκπεραίωση της εφαρμογής SMS οφείλω χρέος ενημέρωσης του αντικειμένου. Τελικά κατέληξα κατά κάποιο τρόπο στο ότι χρειάζομαι συνεργασία με κάποια εταιρεία για να στείλω μαζικά (SMS). Από όνομα χρήστη,κωδικό,μέχρι τέλος στη προπληρωμή μηνυμάτων. Χρησιμοποίησα το API που δίνουν όλες οι εταιρείες είτε είναι σε asp ή php to Website βάζοντας ένα πεδίο (webtxt). Χρησιμοποίησα ένα reference ΧΜL ,και create object για τις ιδιότητες. Έτσι όταν η βάση σου είναι κλειδωμένη έχει την ευεληξία κινήσεων αλλαγής εταιρείας. Δεν κατάφερα με το τρόπο που μου έγραψες (InternetExplorer)να στο προσαρμόσω να στείλω μήνυμα. Έτσι βρίσκοντας το οικονομικό πακέτο κάποιας εταιρείας βάζεις το αντίστοιχο website που σου δίνει η εκάστοτε εταιρεία είτε είναι asp είτε php ,βγάζεις και τα :Username, password της συγκεκριμένης εταιρείας. Έφτιαξα και ένα δεύτερο πεδίο webtxt1 όπου βάζοντας ένα url για credit μου επιστρέφει την τιμή του υπολοίπου ex.Credit:0.00 Έχω όμως μια ερώτηση το μήνυμα της access που επιστρέφει την τιμή πχ. Credit:0.00 ή ότι άλλοΠχ.όταν το μήνυμα σταλεί μου επιστρέφει ΠΧ.Μid 000E83 που σημαίνει ότι το μήνυμα στάλθηκε . Πώς μπορώ να το περάσω σε πίνακα για αποθήκευση; Αν και πιστεύω καλύτερα είναι η αποθήκευση εκτός βάσης για το θέμα υπερφόρτωσης(όγκου). Απλά ΄δεν χρησιμοποίησα στην μαζική αποστολή το check box αλλά με κώδικα μετέφερα τα επιλεγμένα κινητά τηλέφωνα σε πεδίο (txtTo)που ορίζετε απο την εταιρεία με την ίδια ονομασία. Ο κωδικας που χρησιμοποίησα για την αποστολή είναι ο εξής¨: Κώδικας: Public Function WinHTTPPostRequest(url As String, FormData As String) As String |
Καλησπέρα! Αλέξανδρε, αντικατέστησε στον κώδικα σου το MsgBox result με Me.Pedio = result Πάντως... πολύ φασαρία φίλε μου ο κώδικας αυτός.... Σε μαζικές αποστολές είσαι σίγουρος ότι συμπεριφέρεται σωστά; Αν στείλεις απανωτά 2-3 SMS στο ίδιο νούμερο λειτουργεί κανονικά; Το Μid 000E83 είναι το ID που δίνει ο Server αφού παραλάβει τα δεδομένα από την εφαρμογή σου επιτυχώς και φυσικά θα το χρειαστείς (εξηγείται παρακάτω). Αυτός ο αριθμός δεν σημαίνει ότι το μήνυμα έχει φτάσει στον τελικό παραλήπτη. Θα πρέπει αφού κάνεις την αποστολή, να κάνεις ερώτημα στον Server (πάλι με χρήση URL και του Μid 000E83 ) αν τα μηνύματα έχουν πια παραληφθεί από τον τελικό παραλήπτη αν θέλεις να κάνεις σωστή δουλειά. Για να το κάνεις με Internet Explorer (εφόσον υποστηρίζεται από τον διακομιστή SMS) μπορείς να πειραματιστείς με τον παρακάτω κώδικα: Κώδικας: 'Created by Tasos FiloxenidisΤάσος |
Καλησπέρα Τάσο 'Οντως ό τρόπος που επέλεξα είναι πολύπλοκος.Δυσκολεύτηκα πολύ στο θέμα μαζικής αποστολής διότι απο ένα πίνακα ο οποίος περιέχει 2 πεδία contactName και telefonNumber έπρεπε να τα μεταφέρω με checkbox όλα τα νούμερα σε ένα πεδίο(txtTo) με πρόθεμα +30 και την σύνδεση αυτών με κόμμα(,).Ανάλογα την εταιρεία τι ζητάει(μερικές εταιρίες θέλουν ερωτηματικο(;) αντί το κόμμα(,) Aπο εκεί μετά να κάνω την αποστολή. Βεβαίως γνωρίζω ότι με την απάντηση του Server σε μήνυμα πχ Μid 000EB3 (μού το είχες εξηγήσει σε προηγούμενο μήνυμα)ότι το μήνυμα παραλήφθηκε από το server αλλά όχι από τον παραλήπτη.Επειδή εγώ αγόρασα κάποια μηνύματα και ΄΄εστειλα δοκιμαστικά στο κινητό μου όταν έβγαινε το Μid έφτανε και το μήνυμα. Το API που δίνει η εταιρεία σε url για κάθε ενέργεια είναι διαφορετικό ΠΧ άλλο url για credits,για deletContact,για saveContacts,για multiplequery,για deleteMessage κλπ Κάθε φορά θα πρέπει να γίνεται επερώτηση στο server και ο server θα απαντά ανάλογα σε μήνυμα. Το ερώτημα μου ήταν στο θέμα μηνύματος όπως και μου απάντησες το MsgBox να το αντικαταστήσω. Τώρα στο θέμα αποστολής πολλών μηνυμάτων.Το δοκίμασα με δέκα παραλήπτες και τα έστειλα κανονικά. Ο κώδικας που χρησιμοποίησα για το check και την μεταφορά των επιλεγμένων τηλεφώνων σε ένα πεδίο( txtTo) είναι΄: [CODEPrivate Sub chkSelectPhonebookItems_Click() Dim i As Integer With PhonebookList For i = 0 To .ListCount - 1 .Selected(i) = chkSelectPhonebookItems.Value Next i End With Call PhonebookList_Click 'txtFrom.Value = "" 'txtMessage.Value = "" End Sub __________________________________________________ ____ Private Sub PhonebookList_KeyUp(KeyCode As Integer, Shift As Integer) Call PhonebookList_Click End Sub __________________________________________________ __ ' Βάλτε τα επιλεγμένα στοιχεία του τηλεφωνικού καταλόγου στο πεδίο αριθμό τηλεφώνου (Put the selected phonebook items into phone number field) Private Sub PhonebookList_Click() Dim curPhone As String, curName As String, strPhones As String, strNames As String Dim rowNum As Variant ' Πάρτε επιλεγμένους αριθμούς τηλεφώνου και ονόματα (Get selected phone numbers & names) With PhonebookList For Each rowNum In .ItemsSelected curPhone = .Column(1, rowNum) curName = .Column(0, rowNum) strPhones = strPhones & ", " & curPhone strNames = strNames & ", " & curName Next rowNum End With If Len(strPhones) Then strPhones = mid$(strPhones, 3) If Len(strNames) Then strNames = "(" & mid$(strNames, 3) & ")" ' Βάλτε τους στο πεδίο PhoneNumber (Put them on PhoneNumber field) txtTo = Str2Null(strPhones) txtContactName = strNames End Sub __________________________________________________ ______ Private Sub txtTo_Change() txtContactName = "" End Sub][/CODE] __________________________________________________ _______ Η ανοχή του Server είναι μέχρι 100 τηλέφωνα κινητά με κάθε αποστολή . Τώρα έχω πόσες εναλλαγές στο θέμα αποστολής SMS me Αctive x με internet explorer με reference XML κλπ Ευχαριστώ πάντως για την πολύτιμη βοήθεια σου σ΄΄αυτήν την δύσκολη προσπάθεια αποπεράτωσης της εφαρμογής μου. Φιλικά Αλέξανδρος |
| Η ώρα είναι 09:45. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.