Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Εμφάνιση Συγκεκριμένων Εγγραφών στην Φόρμα. (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/755-emfanisi-sygkekrimenon-eggrafon-stin-forma.html)

Free_Ghost 28-09-10 20:21

Εμφάνιση Συγκεκριμένων Εγγραφών στην Φόρμα.
 
Βασικά δεν ξέρω εάν είναι εφικτό μέσα σε μια φόρμα να μην προβάλλονται όλες οι εγγραφές..

Να γίνω πιο συγκεκριμένος έστω ότι έχω 50 εγγραφές από αυτές ενεργές είναι οι 40 οι 10 αποτελούν παρελθόν (τις οποίες δεν θέλουμε να διαγράψουμε, αλλά ούτε να σκοντάφτουμε συνέχεια πάνω τους).

Μπορώ μέσα στον πίνακα που υπάρχουν τα στοιχεία να έχω ένα πεδίο όπου ας πούμε θα αναφέρει ΝΑΙ η ΟΧΙ και με ένα πλήκτρο πάνω στην Φόρμα να φαίνονται όλες οι εγγραφές οι μόνο οι ενεργές..

Είναι πραγματοποιήσιμο κάτι τέτοιο…:wall:

Meteora 28-09-10 20:56

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

Private Sub Εντολή36_Click()

    If me.Filter = "[Τωρα] = 'Ναι'" Then
        me.Filter = ""
        Me.Εντολή36.Caption = "Απόκρυψη..."
    Else
        me.Filter = "[Τωρα] = 'Ναι'"
        Me.Εντολή36.Caption = "Εμφάνιση..."
    End If

    me.FilterOn = True
End Sub

Το [Τωρα] είναι πεδίο με τιμές Ναι/Όχι

Δοκιμάζεις - δοκιμάζω στα δικά μου και τα λέμε / Νίκος Δ.


Υστερολόγιο: Το κουμπί μου είναι το Εντολή36.

Dangel82 29-09-10 00:56

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

Μπορείς να κάνεις το παρακάτω:

Εάν ο εγγραφές σου είναι μέσα σε κάποιο ComboBox:
1 - Όρισε ένα πεδίο Ναι/Οχι στον πίνακα των ειδών σου (θα το ονομάσω "Active")
2 - Προσδιόρισε σε ποιά κατάσταση θα έχεις το πεδίο "Active" για κάθε εγγραφή του πίνακα "Είδη"
3 - Μέσα στην φόρμα σου στην "Προέλευση εγγραφών" του Combobox όρισε ως φίλτρο (χωρίς να το εμφανίζεις στην λίστα σου) το πεδίο "Active" στην κατάσταση που επιθυμείς (True ή False)
4 - Τελείωσες, το ComboBox θα σου εμφανίζει μόνο τις τιμές που έχεις ορίσει στο φίλτρο του ComboBox
Με τον τρόπο αυτό μεν, ενημερώνεις τις εγγραφές σου με τα πεδία που υπάρχουν διαθέσιμα (βάση φίλτρου) απο το ComboBox και δεν εξαφανίζεις τις εγγραφές που έκανες στην φόρμα σου πριν απο το μαρκάρισμα του είδους ως "Ανενεργο" (Active = True).

Εάν είναι μια απλή φόρμα:
1 - Όρισε ένα πεδίο Ναι/Οχι σε έναν πίνακα που υπάρχει στο DataSource της φόρμας σου (θα το ονομάσω "Active")
2 - Πρόσθεσε αυτό το πεδίο στην φόρμα σου
3 - Βάλε 1 Unbound CheckBoxe στην φόρμα σου (ονόμασέτο ένα "Open_Closed)
4 - Στο Ερώτημα του DataSource στο πεδίο "Active" βάλε το κριτήριο:
Iif([φορμα]!Active=True;True;False)
Στην ουσία αλλάζεις τις εγγραφές του ερωτήματός σου βάση του τι είναι επιλεγμένο στο Unbound CheckBox που έχεις στην φόρμα σου.
4 - Στο Event AfterUpdate του unbound CheckBox βάλε το εξής :
me.Form.Requery
Μόλις θα κάνεις το παραπάνω τσεκάρωντας ή ξετσεκάρωντας το CheckBox επιλέγεις ποιές εγγραφές θέλεις να δεις (τις ενεργές ή τις ανενεργές) και ξαναυπολογίζει την φόρμα σου βάση της επιλογής σου.

P.S. Sorry αν κάπου σε μπερδεύω αλλά είμαι για ύυυυυυυυπνουςςςς.....!!

Φιλικά,

Άγγελος

Free_Ghost 29-09-10 07:22

Παράθεση:

Αρχική Δημοσίευση από Dangel82 (Μήνυμα 3799)
Χρήστο καλησπέρα,

Εάν είναι μια απλή φόρμα:
1 - Όρισε ένα πεδίο Ναι/Οχι σε έναν πίνακα που υπάρχει στο DataSource της φόρμας σου (θα το ονομάσω "Active")
2 - Πρόσθεσε αυτό το πεδίο στην φόρμα σου
3 - Βάλε 1 Unbound CheckBoxe στην φόρμα σου (ονόμασέτο ένα "Open_Closed)
4 - Στο Ερώτημα του DataSource στο πεδίο "Active" βάλε το κριτήριο:
Iif([φορμα]!Active=True;True;False)
Στην ουσία αλλάζεις τις εγγραφές του ερωτήματός σου βάση του τι είναι επιλεγμένο στο Unbound CheckBox που έχεις στην φόρμα σου.
4 - Στο Event AfterUpdate του unbound CheckBox βάλε το εξής :
me.Form.Requery
Μόλις θα κάνεις το παραπάνω τσεκάρωντας ή ξετσεκάρωντας το CheckBox επιλέγεις ποιές εγγραφές θέλεις να δεις (τις ενεργές ή τις ανενεργές) και ξαναυπολογίζει την φόρμα σου βάση της επιλογής σου.

P.S. Sorry αν κάπου σε μπερδεύω αλλά είμαι για ύυυυυυυυπνουςςςς.....!!

Φιλικά,

Άγγελος

Νίκο εχθές το βράδι έκανα κάποιες δοκιμές αλλά δεν κατάφερα τίποτα, μου έβγαζε σφάλμα..

Αγγελε το βράδι θα δοκιμάσω το παραπάνω ( τώρα είμαι δουλειά δεν μπορώ) αν και δεν το πολυκατάλαβα με ζορίζει λίγο Το 4 και το 4 αλλά θα το προσπαθήσω...:pchit:

kapetang 29-09-10 11:03

1 Συνημμένο(α)
Καλημέρα στην παρέα

Στη βάση δεδομένων που επισυνάπτω παρουσιάζω μια απλή περίπτωση εφαρμογής φίλτρου που νομίζω ότι καλύπτει τις ανάγκες του Χρήστου.
Η βάση αποτελείται από ένα πίνακα πελατών «tblCustomers» που περιέχει και ένα πεδίο «Active» τύπου Ναι/Όχι, για να διακρίνει τους πελάτες σε ενεργούς και μη και από μία φόρμα «frmCustomers».
Επειδή θέλουμε η φόρμα να φιλτράρει τους πελάτες και να δείχνει μόνο τους ενεργούς:
  1. Στην ιδιότητα της φόρμας φίλτρο έβαλα τον τύπο: [Active]=-1 (προβολή σχεδίασης > ιδιότητες φόρμας > καρτέλα δεδομένα > ιδιότητα φίλτρο).
  2. Στην κεφαλίδα της φόρμας πρόσθεσα ένα πλαίσιο ελέγχου με όνομα «chkFilter» που καθορίζει αν θα εμφανίζονται όλοι οι πελάτες ή μόνο οι ενεργοί.
  3. Στο συμβάν με το κλικ του πλαισίου ελέγχου έβαλα τον κώδικα:
Private Sub chkFilter_Click()
Me.FilterOn = Me.chkFilter
End Sub
Προσθήκη: Αν χρησιμοποιήσουμε για την εφαρμογή ή την κατάργηση του φίλτρου το μενού (Εγγραφές > Εφαρμογή/Κατάργηση φίλτρου) ή το κουμπί της γραμμής εργαλείων Εφαρμογή/Κατάργηση φίλτρου (αυτό με το χωνί), οι ενέργειες 2 και 3 δε χρειάζονται.

Φιλικά/Γιώργος

Dangel82 29-09-10 11:49

1 Συνημμένο(α)
Πάνω στο πολύ καλό παράδειγμα του Γιώργου, και ο τρόπος που ανέλυσα παραπάνω...

Φιλικά,

Άγγελος

PS: Έχουμε λαό καλό και επίπεδο γ@μ@το στο Forum λέμεεεεεεε!!!
Ότι θες! Όπως το θές! και με 10+ διαφορετικούς τρόπους!!!

:011::011::011::011::011::011::011::011::011:

Meteora 29-09-10 17:45

Καλημέρα...
Με άρεσαν οι προσεγγίσεις του Γιώργου και του Άγγελου. Μοντέρνος κώδικας.Θα τον χρησιμοποιήσω.
Χρήστο ο κώδικας που ανέβασα, τον έχω προσαρμόσει -όπως φαίνεται παρακάτω και δουλεύει !

Κώδικας:

Private Sub Εντολή48_Click()

< ...κώδικας>

Select Case Me.Filter
  Case ""
      Me.Filter = "[Επιλογη] = true"
      Me.Εντολή48.Caption = "Όλοι οι μαθητές"
  Case "[Επιλογη] = true"
      Me.Filter = ""
      Me.Εντολή48.Caption = "Επιλογή μαθητών"
    End Select
    Me.FilterOn = True
End Sub

Να είμαστε όλοι καλά / Νίκος Δ.

Free_Ghost 29-09-10 18:17

:thanks: :thanks: :thanks: :thanks:

Πέτυχε ...:thumbup:

Αυτή η ψευτοεφαρμογή που κάνω είναι η τρίτη το συγκεκριμένο πρόβλημα με απασχολούσε και στην πρώτη και λύθηκε τώρα...

Ευχαριστώ τους φίλους " Γιώργο, Νίκο και Αγγελο " που ασχολήθηκαν με το πρόβλημα μου...

Τώρα όσπου να τελειώσο πόσες φορές θα φωνάξω HELP δέν ξέρω..

Πάντως για άλλη μια φορά ευχαριστώ...:thanks:

kapetang 30-09-10 09:01

Καλημέρα στην παρέα
Άγγελε δοκιμάζοντας το παράδειγμα που ανέβασες διαπίστωσα ότι στη φόρμα δεν είναι δυνατή η εμφάνιση όλων των εγγραφών (ενεργών και μη).
Φιλικά/Γιώργος

Dangel82 30-09-10 12:58

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 3823)
Καλημέρα στην παρέα
Άγγελε δοκιμάζοντας το παράδειγμα που ανέβασες διαπίστωσα ότι στη φόρμα δεν είναι δυνατή η εμφάνιση όλων των εγγραφών (ενεργών και μη).
Φιλικά/Γιώργος

Μια μικρή παραλαγή για να καλύψουμε και αυτήν την περίπτωση...


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

Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2