Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| Εργαλεία Θεμάτων ![]() | Τρόποι εμφάνισης ![]() |
#1
| |||
| |||
![]()
Καλησπέρα, Εχω στήσει μια εφαρμογή έτσι ωστε ο χρήστης να μπορεί να επιλέγει σε ποιούς πελάτες επιθυμεί να σταλεί SMS ορίζοντας τους απο το πεδίο [Grabb] είτε επιλεκτικά είτε γενικά σε όλους. Δυστυχώς ο κώδικας ο οποίος έχω στην φορμα (και ο οποίος έχει στηθεί με δικής σας βοήθεια και σας ευχαριστω) δεν περιλαμβάνει στο RecordSet της φόρμας πουθενά το πεδίο [Grabb]=True και ακολούθως να σταλούν τα μηνύματα με αποτέλεσμα να αποστέλνονται σε ολους τους πελατες γενικά. Παραθετω τον κώδικα στην εντολή αποστολής του SMS και θα εκτιμήσω εάν κάποιος μπορέσει να βοηθήσει.Ουσιαστικά το ζητούμενο είναι να εκτελείται ο πιο κάτω κώδικας και στο RecordSet να περιλαμβάνονται μόνον όσα Records είναι στο πεδίο [Grabb]=True Public Sub cmdBulkSMS_Click() Set rsPatient = Me.Bulk_SMS!subClients.Form.Recordset If rsPatient.RecordCount > 0 Then rsPatient.MoveFirst While Not rsPatient.EOF Title = Me.xTitle message = Me.SMSBody mobnu = rsPatient.Fields("Mobile1") res = Send_SMS(Title, mobnu, message) ' MsgBox res rsPatient.MoveNext Me.Bulk_SMS!subClients.Form.Form.Refresh Wend MsgBox " The SMS has been sent", vbExclamation, "Send Bulk SMS" Else MsgBox "Error: Cannot find Data", vbInformation, Me.Caption End If End Sub Ευχαριστω εκ προτέρων |
#2
| |||
| |||
![]()
Καλημέρα Γιώργο, Θα πρέπει να πας στο Recordset της φόρμας subClients και να πρόσθεσης το πεδίο Grabb αν προέρχεται από ερώτημα και σαν κριτήριο να βάλεις το True. Αλλιώς αν το Recordset της φόρμας subClients προέρχεται από πίνακα θα πρέπει να φτιάξεις ένα ερώτημα με τα πεδία που θέλεις για να μπορείς να φιλτράρεις τις εγγραφές σου. Ο κώδικας δεν θα χρειαστεί αλλαγή γιατί παίρνει τις εγγραφές από το Recordset της φόρμας subClients. Ευχαριστώ. |
#3
| |||
| |||
![]() Παράθεση:
Βασικά στην φόρμα subClients υπάρχει το πεδίο [Grabb] και εφόσον ο χρήστης επιλέξει μια συγκεκριμένη εγραφή τότε αυτόματα γίνεται [Grabb]=True. Το πρόβλημα είναι ότι όταν εκτελείται ο κώδικας θέλω να αρχίσει να μετρά μόνον όσες εγραφές είναι True και να μην λαμβάνει υπόψη τις False...Όπως είναι τώρα ο κώδικας αρχίζει να μετρά όλες τις εγραφές αγνοώντας αυτό το κριτήριο και έχει ώς αποτέλεσμα να αποστέλνονται γενικά σε όλους SMS και όχι σε αυτούς που πραγματικά ο χρήστης επέλεξε.. Θα το κοιτάξω όμως και ίσως αλλάξω λίγο την δομή της φόρμας. Μια σκέψη που έκανα (και δεν την δοκίμασα) εϊναι εφόσον ο χρήστης επιλέξει τις εγραφες που θέλει, να τις μεταφέρω σε μιά άλλη φόρμα που θα έχει RecordSet απο ερώτημα με κριτήριο [Grabb]=True και απο εκεί να εκτελείται ο κώδικας αποστολής SMS Σε κάθε περίπτωση ευχαριστω πολύ Νάσαι καλά και καλή σου μέρα |
#4
| |||
| |||
![]()
Καλησπέρα Γιώργο, Καταλαβαίνοντας την διαδηκασία για δες τον παρακάτω κώδικα, Η αλλαγή είναι If rsPatient.Fields("Grabb") = True Then Public Sub cmdBulkSMS_Click() Set rsPatient = Me.Bulk_SMS!subClients.Form.Recordset If rsPatient.RecordCount > 0 Then rsPatient.MoveFirst While Not rsPatient.EOF If rsPatient.Fields("Grabb") = True Then Title = Me.xTitle message = Me.SMSBody mobnu = rsPatient.Fields("Mobile1") res = Send_SMS(Title, mobnu, message) ' MsgBox res rsPatient.MoveNext Me.Bulk_SMS!subClients.Form.Form.Refresh End If Wend MsgBox " The SMS has been sent", vbExclamation, "Send Bulk SMS" Else MsgBox "Error: Cannot find Data", vbInformation, Me.Caption End If End Sub Ευχαριστώ. |
#5
| |||
| |||
![]() Παράθεση:
Νάσαι καλά και εκτιμώ την βοήθεια. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Η ώρα είναι 20:29.