Forum

Αναζήτηση στο ms-office.gr

Πάμε!

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 27-08-15, 15:45
Όνομα: Χρήστος Ελευθερίου
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 26-11-2009
Περιοχή: Άρτεμις
Μηνύματα: 136
Προεπιλογή Cascading ComboBox

Καλησπέρα σε όλους

Θα ήθελα αν μπορείτε να με βοηθήσετε να φτιάξω κάποια comboΒoxes (πως να τα συνδέσω).
Θα ήθελα επιλέγοντας κάποια τιμή στο πρώτο comboBox, το δεύτερο να μου φέρνει τις τιμές που αντιστοιχούν στην πρώτη επιλογή και στο τρίτο τις τιμές που αντιστοιχούν στο δεύτερο.
Προσπάθησα αλλά δεν κατάφερα κάτι.
Αν μπορεί κάποιος ας μου πει πως μπορώ να το κάνω.

ΥΓ. Ανεβάζω δείγμα τις βάσης μου.

Σας ευχαριστω
Συνημμένα Αρχεία
Τύπος Αρχείου: zip BarcodeBase.zip (139,5 KB, 29 εμφανίσεις)
__________________
Φιλικά

Χρήστος
___________________________
Αυτά που δεν ξέρεις φτιάχνουν μία βιβλιοθήκη που καθένας μας θα ήταν υπερήφανος να έχει.
Αν η γνώση δημιουργεί προβλήματα,η άγνοια σίγουρα δεν μπορεί να τα λύσει.
Απάντηση με παράθεση
  #2  
Παλιά 29-08-15, 00:20
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.190
Προεπιλογή

Καλησπέρα

Χρήστο, δες μια πρόταση στο συνημμένο, με κώδικα.

Κάνε δοκιμές για να διαπιστωθεί αν καλύπτει όλες τις περιπτώσεις.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb BarcodeBase2.accdb (1,18 MB, 69 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 29-08-15, 13:43
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Καλησπέρα
Στην πιο κάτω βάση, μπορεί να δει κανείς, τον κλασσικό τρόπο,
με τον οποίο μπορούμε, να δημιουργήσουμε εξαρτημένα cbo.

Έχουμε δημιουργήσει τρείς πίνακες:
Κατηγορίες
Υποκατηγορίες
Προϊόντα

και ακόμα, δημιουργήσαμε τις μεταξύ τους σχέσεις.

Σε μια παραδειγματική φόρμα, που θα μπορούσε να είναι παραγγελιοληψία
πελατολόγιο ή ό,τι άλλο, δημιουργούμε τρία ασύνδετα cbo:
Κατηγορία
Υποκατηγορία
Προϊόν


Σε καθ' ένα από αυτά, από ιδιότητες - δεδομένα, δημιουργούμε ερώτημα (SQL statment)
Και τέλος λίγος κώδικας...
στο συμβάν, After Update του πρώτου cbo , κάνουμε Requery στο δεύτερο cbo και
στο συμβάν, After Update του δεύτερου cbo , κάνουμε Requery στο τρίτο cbo.

Μπορούμε να εισάγουμε, περισσότερα των τριών cbo, ανάλογα με τις ανάγκες μας.

Αφού κάνουμε και τα ανάλογα Format στηλών (ότι εξυπηρετεί τον καθ' ένα) ...
δοκιμάζουμε την λειτουργία ...
Οι λεπτομέρειες, στη βάση...
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb Εξαρτημένα_CBO.accdb (636,0 KB, 54 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 29-08-15, 16:24
Όνομα: Χρήστος Ελευθερίου
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 26-11-2009
Περιοχή: Άρτεμις
Μηνύματα: 136
Προεπιλογή

Γιώργο καλησπέρα
Σε ευχαριστώ πολύ είναι αυτό που ήθελα.

Εκεί που έχω πρόβλημα είναι όταν περνάω στο φύλλο δεδομένων πάνω από τις εγγραφές,
ενώ έχει τιμή το combo box δεν τη δείχνει (στη φόρμα)... Δες την εικόνα
Συνημμένα Thumbnails
Cascading ComboBox-deigma.jpg  
__________________
Φιλικά

Χρήστος
___________________________
Αυτά που δεν ξέρεις φτιάχνουν μία βιβλιοθήκη που καθένας μας θα ήταν υπερήφανος να έχει.
Αν η γνώση δημιουργεί προβλήματα,η άγνοια σίγουρα δεν μπορεί να τα λύσει.

Τελευταία επεξεργασία από το χρήστη Chris : 29-08-15 στις 17:05.
Απάντηση με παράθεση
  #5  
Παλιά 29-08-15, 16:27
Όνομα: Χρήστος Ελευθερίου
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 26-11-2009
Περιοχή: Άρτεμις
Μηνύματα: 136
Προεπιλογή

Σπύρο καλησπέρα

Σ' ευχαριστώ και σένα για την απάντηση σου αλλά αυτό που με εξυπηρετεί
περισσότερο είναι η απάντηση του έδωσε ο Γιώργος.
__________________
Φιλικά

Χρήστος
___________________________
Αυτά που δεν ξέρεις φτιάχνουν μία βιβλιοθήκη που καθένας μας θα ήταν υπερήφανος να έχει.
Αν η γνώση δημιουργεί προβλήματα,η άγνοια σίγουρα δεν μπορεί να τα λύσει.

Τελευταία επεξεργασία από το χρήστη Chris : 29-08-15 στις 17:05.
Απάντηση με παράθεση
  #6  
Παλιά 29-08-15, 18:34
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Καλησπέρα
Χρήστο, σαφώς και η απάντηση του Γιώργου, είναι προσαρμοσμένη, στο πρόβλημα που θέτεις.

Το δικό μου ποστάρισμα, δεν έχει να κάνει 100% με λύση, για την συγκεκριμένη βάση.
Περισσότερο, είναι ένας γενικός τρόπος, για να δουν κι άλλοι φίλοι,
πως γίνονται κάποια πράγματα και να τα χρησιμοποιήσουν αν υπάρξει ανάγκη.

Αν κανείς για παράδειγμα, αρχίσει τώρα να δημιουργεί μια νέα βάση με αυτά τα χαρακτηριστικά,
ακολουθώντας την μέθοδο αυτή και δημιουργώντας μια υποφόρμα επιπλέον,
σίγουρα θα αποφύγει (με λίγο ακόμη κώδικα) το πρόβλημα που αναφέρεις.
Απάντηση με παράθεση
  #7  
Παλιά 29-08-15, 22:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.190
Προεπιλογή

Καλησπέρα

Ο συντονισμός τριών ComboBox είναι αρκετά σύνθετος και έχω τη γνώμη ότι αυτό ισχύει και για τη μέθοδο που προτείνει ο Σπύρος.

Δεν αρκεί κώδικας μόνο για το συμβάν Update.

Χρήστο έκανα κάποιες αλλαγές και νομίζω ότι η πρόταση έγινε πιο λειτουργική.

Θα ξαναδώ το θέμα και αν καταλήξω σε κάτι καλύτερο θα επανέλθω.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb BarcodeBase3 .accdb (1,09 MB, 34 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 29-08-15 στις 23:08. Αιτία: Αλλαγή συνημμένου
Απάντηση με παράθεση
  #8  
Παλιά 30-08-15, 00:12
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.190
Προεπιλογή

Καλησπέρα

Μια απλούστερη λύση είναι στο συνημμένο.

Εκμεταλλεύεται την πρόταση του Σπύρου και ταυτόχρονα προσθέτει κώδικα και στο συμβάν Current της φόρμας.

Υπάρχει όμως ακόμα ένα μειονέκτημα.

Στην προβολή φύλλου δεδομένων οι τιμές των πεδίων Group1, Group2 και Group3 εμφανίζονται σίγουρα μόνο στην τρέχουσα εγγραφή.

Στις άλλες εγγραφές ενδέχεται να μη εμφανίζονται επειδή οι τιμές των πεδίων δεν περιέχονται στις λίστες τιμών των combobox, όπως αυτές(λίστες) έχουν διαμορφωθεί για την τρέχουσα εγγραφή.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb BarcodeBase4.accdb (1,09 MB, 37 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 31-08-15, 12:56
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Δείτε κι αυτό:

http://www.ms-office.gr/forum/access...imena-cbo.html
Απάντηση με παράθεση
  #10  
Παλιά 01-09-15, 11:40
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.190
Προεπιλογή

Καλημέρα

Χρήστο επανέρχομαι με μία τελική πρόταση.

Το πρόβλημα με τα εξαρτώμενα ComboBox δεν είναι τόσο στο συγχρονισμό τους, όσο στην εμφάνιση των δεδομένων.

Όταν επιλέγουμε μια τιμή στο cboIDGroup1 εκτελείται ο κώδικας της διαδικασίας cboIDGroup1_AfterUpdate και τα στοιχεία της λίστας του cboIDGroup2 φιλτράρονται και συγχρονίζονται με την επιλογή.

Επίσης, αν στη συνέχεια επιλέξουμε μία τιμή στο cboIDGroup2, θα εκτελεστεί ο κώδικας της διαδικασίας cboIDGroup2_AfterUpdate και τα στοιχεία της λίστας του cboIDGroup3 θα φιλτραριστούν και θα συγχρονιστούν με την επιλογή.

Αν τώρα μετακινηθούμε σε μία άλλη εγγραφή, τότε αν η τιμή του πεδίου IDGroup2 (ή του IDGroup3) δεν περιέχεται στη λίστα του cboIDGroup2 (ή του cboIDGroup3) δε θα εμφανιστεί.

Για την αντιμετώπιση του προβλήματος πρόσθεσα κώδικα και στο συμβάν OnCurrent της φόρμας.

Έτσι κάθε φορά που αλλάζουμε εγγραφή το cboIDGroup2 φιλτράρεται με βάση την τρέχουσα τιμή του cboIDGroup1 και το cboIDGroup3 με βάση την τρέχουσα τιμή του cboIDGroup2 .

Αυτό εξασφαλίζει η τρέχουσα εγγραφή να εμφανίζει όλες τις τιμές.

Αν η φόρμα είναι απλή (δείχνει μία εγγραφή τη φορά) τελειώσαμε.

Σε μία συνεχόμενη φόρμα ή φόρμα Split που βλέπουμε πολλές εγγραφές η τρέχουσα θα εμφανίζει όλες τις τιμές ενώ οι υπόλοιπες ενδέχεται να έχουν κενά στα πεδία cboIDGroup2 και cboIDGroup2.

Για την αντιμετώπιση του προβλήματος για κάθε ComboBox (cboIDGroup2, cboIDGroup3) πρόσθεσα ένα πλαίσιο κειμένου και τα μορφοποίησα ώστε το textbox και το αντίστοιχο ComboBox να φαίνονται σαν ένα απλό ComboBox.

Επίσης έβαλα τους κατάλληλους τύπους στα TextBox

Έτσι η εμφάνιση των τιμών γίνεται στα TextBox και τα ComboBox χρησιμοποιούνται μόνο για επιλογή στοιχείων.

Στην προβολή του φύλλου δεδομένων για να μη εμφανίζονται στήλες για τα ComboBox και τα αντίστοιχα TextBox οι στήλες των ComboBox κρύφτηκαν.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb CascadingComboBoxFormSplit.accdb (1,04 MB, 97 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
cascading combobox

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[VBA] ComboBox Πλήθος Εκτυπώσεων gfevran Excel - Ερωτήσεις / Απαντήσεις 2 09-11-14 23:13
Combobox (NotList) gregory_m Visual Basic .NET 1 24-05-14 20:54
[VBA] ComboBox φίλτρο anestaki Excel - Ερωτήσεις / Απαντήσεις 15 17-02-14 22:22
[VBA] Σύγκριση τιμών ComboBox από το ίδιο το ComboBox. anestaki Excel - Ερωτήσεις / Απαντήσεις 4 08-02-13 13:49
Φίλτρο με ComboBox Χρήστος Access - Ερωτήσεις / Απαντήσεις 3 09-02-12 22:59


Η ώρα είναι 16:31.