Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ερωτήματα ] Αναζήτηση σε δύο πεδία διαδοχικά

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-07-10, 00:03
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 139
Προεπιλογή Αναζήτηση σε δύο πεδία διαδοχικά

Καλησπέρα! Παρατήρησα ότι στο forum αυτό βρίσκεις απαντήσεις σε όλα και αποφάσισα να κάνω και εγώ μια ερώτηση. Σε ένα πίνακα που μεταξύ άλλων έχει δύο πεδία, 1ο τηλέφωνο οικίας και 2ο τηλεφωνο εργασίας κάνω αναζήτηση του πελάτη, με ερώτημα, από το πρώτο πεδίο (τηλ οικίας). Υπάρχει τρόπος αν δεν βρεθεί το τηλέφωνο στο πρώτο πεδίο η αναζήτηση να συνεχιστεί στο δεύτερο πεδίο (τηλ εργασίας); Ευχαριστώ εκ των προτέρων!
Απάντηση με παράθεση
  #2  
Παλιά 04-07-10, 01:34
Όνομα: Μάριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 07-07-2009
Μηνύματα: 18
Προεπιλογή

Σου στέλνω κάτι που ψάχνει και στα δύο πεδία για την ίδια τιμή.
Χρειάζεται προσοχή αν το ερώτημα που χρησιμοποιείς έχει και άλλα κριτήρια.
Αν όχι, τότε το qrySearch είναι πιο απλό και θα σε βολέψει. Αν υπάρχουν κι άλλα κριτήρια, τότε καλό είναι να δουλέψεις με τη λύση του qrySearch2 για να μην μπερδευτείς με τις πολλαπλές γραμμές κριτηρίων (στις οποίες πρέπει να επαναλάβεις τα υπόλοιπα κριτήρια -αν χρησιμοποιήσεις την υλοποίηση του qrySearch-).
Συνημμένα Αρχεία
Τύπος Αρχείου: zip db1.zip (12,2 KB, 27 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 04-07-10, 08:08
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 139
Προεπιλογή

Τελικά ήταν εντυπωσιακά απλό! Ευχαριστώ πολύ.
Απάντηση με παράθεση
  #4  
Παλιά 06-07-10, 04:37
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Φίλε Γιώργο, καλωσόρισες στο φόρουμ!

Έχω να σου προτείνω μια διαφορετική προσέγγιση στη διαχείριση των προσωπικών στοιχείων
μέσα από μια βάση δεδομένων της Access.
Είναι καλύτερο να κρατάμε τέτοιου είδους στοιχεία σε ξεχωριστούς πίνακες έτσι ώστε
να έχουμε πλήρη ελευθερία κινήσεων.

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

Ελπίζω να σε βοηθήσει.

Φιλικά, Γιάννης.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Phones.zip (57,0 KB, 32 εμφανίσεις)
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #5  
Παλιά 06-07-10, 17:15
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα κοινότητα...
Φίλτατε Γιάννη, εκπληκτική δουλειά. Λιτή , ωραία εικόνα, πλήθος επιλογών και με ...χιούμορ!
Μόνο το Ηπειρώτικο τραγούδι απουσιάζει. Καλό απόγευμα φίλε μου.
Φιλικά Νίκος Δ.

Υστερολόγιο: Αν δεις ανοιχτό skype και έχεις έστω και λίγο χρόνο τα λέμε.

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

Γιάννη, καλημέρα

Μελετώντας τον κώδικα, για την αναζήτηση με βάση τον αριθμό τηλεφώνου, έχω την εντύπωση ότι μάλλον δεν απαιτείται η κλήση της διαδικασίας ShowPhones
Private Sub cboCustomer_AfterUpdate()
Me.cboPhone = Null
ShowPhones
End Sub

Private Sub cboPhone_AfterUpdate()
If Not IsNull(Me.cboPhone) Then
Me.cboCustomer = Me.cboPhone 'πυροδοτεί το συμβάν cboCustomer_AfterUpdate
End If
ShowPhones 'μάλλον δεν απαιτείται
End Sub

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #7  
Παλιά 08-07-10, 22:52
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Καλησπέρα Γιώργο!

Το συμβάν AfterUpdate() δεν πυροδοτείται όταν οι αλλαγές προκαλούνται
από από διαδικασίες της VBA.
Όμως έχεις δίκιο για την ShowPhones. Είναι χρήσιμη μόνο κατά την πρώτη αναζήτηση.
Εφόσον τα κλειδιά επιλέγονται από συγκεκριμένες λίστες, θεωρητικά είναι αδύνατο
να μην υπάρχει το ID του πελάτη σε κάποια αναζήτηση.

Εμένα όμως άλλο με προβληματίζει...
Κάνε μερικές επιλογές στο ComboBox των τηλεφώνων και παρατήρησε
ποιο τελικά τηλέφωνο εμφανίζεται μετά την επιλογή σου.

Κάτι δοκιμές που έκανα πριν ώρα, μου εμφάνιζε όχι αυτό που επέλεγα
αλλά κάποιο άλλο του ίδιου 'όμως πελάτη.
Σαν να έκανε Requery ένα πράγμα!
Μου φάνηκε περίεργη η συμπεριφορά και θα καθίσω να το ερευνήσω.

Φίλε Νίκο (α ρε πατρίδα!), σ' ευχαριστώ πολύ για τα καλά σου λόγια!
Τα παλικάρια όμως (ή μάλλον τα παρτάλια ) στο βίντεο δεν μου φαίνονται για Ηπειρώτες...
Πιο πολύ για ουτσεκάδες μου κάνουν!

Τα λέμε!
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #8  
Παλιά 08-07-10, 23:25
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Φίλτατε Γιάννη σε χαιρετώ !
Περνώντας από Επταχώρι σύντομα - πρώτα ο πανμέγιστος! - θα ρωτήσω για αυτά τα πρόσωπα...
(Καλού - κακού άλλαξα το video με κάποιο άλλο που σηκώνει ...πεθαμένους!!!)
Ωχ! τι μπορεί να πάθουμε...
Να είμαστε όλοι καλά.
Νίκος Δ.
Απάντηση με παράθεση
  #9  
Παλιά 09-07-10, 11:50
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Γιάννη, καλημέρα

Είδα τον κώδικα της εφαρμογής και σχημάτισα τη γνώμη ότι και στις δύο αναζητήσεις η αναζήτηση γίνεται με βάση την τιμή του cboCustomer (fldCustID).
Επειδή οι τιμές του cboPhone καθορίζονται από τη στήλη 1 (fldCustID), μόλις επιλεγεί ένα τηλέφωνο ή τιμή του (fldCustID), από τον κώδικα, αποδίδεται στο cboCustomer (στη φόρμα φαίνεται η αλλαγή) και στη συνέχεια (χωρίς ρητή πυροδότηση του συμβάντος afterUpdate) γίνεται η αναζήτηση βάσει της τιμής του cboCustomer.

Φιλικά/Γιώργος
ΥΓ.Τα γράφω μπερδεμένα, ίσως να οφείλεται και στα κλαρίνα του Νίκου.
Απάντηση με παράθεση
  #10  
Παλιά 09-07-10, 15:49
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή Δεσμευμένη στήλη σύνθετου πλαισίου

Καλησπέρα Γιώργο!

Η αλήθεια είναι ότι με μπέρδεψες λίγο...
Που αναφέρεσαι; Στον Τάσο Χαλκιά ή τον Πετρολούκα;

Τελικά βρήκα σε τι οφείλεται το πρόβλημα με το cboPhone που ανέφερα παραπάνω.

Η δεσμευμένη του στήλη είναι η 1 και επειδή οι τιμές αυτής της στήλης
δεν είναι μοναδικές (στήλη fldCustID του πίνακα tblPhones)
μετά από κάθε επιλογή, εμφανίζεται η πρώτη εγγραφή του επιλεγμένου πελάτη.

Για παράδειγμα, οποιοδήποτε τηλέφωνο του Γεωργίου και να επιλέξουμε,
στο σύνθετο πλαίσιο θα εμφανίζεται πάντα ο αριθμός 1123456789.

Η λύση τελικά ήταν να δώσω στην ιδιότητα Δεσμευμένη Στήλη (Bound Column)
την τιμή 0 (μηδέν) και το συμβάν AfterUpdate() άλλαξε σε:
Κώδικας:
Private Sub cboPhone_AfterUpdate()
    If Not IsNull(Me.cboPhone) Then
        Me.cboCustomer = Me.cboPhone.Column(0)
    End If
    ShowPhones
End Sub
Έτσι λοιπόν συμπέρανα πως...
Η δεσμευμένη στήλη των σύνθετων πλαισίων, πρέπει να έχει μοναδικές τιμές.

Ομολογώ πως αυτήν την "παρενέργεια" δεν την είχα αντιμετωπίσει μέχρι τώρα
αλλά στο μέλλον θα τη θυμάμαι, είτε για να την αποφεύγω, είτε για να την εκμεταλλευτώ.

Να 'στε όλοι καλά!
Γιάννης

Υ.Γ.
Νίκο, φαντάζομαι κατάλαβες ότι αστειευόμουν με το "ουτσεκάδες".
Μην πας στο Επταχώρι και τους ρωτάς για περιστατικά εισβολής από τα βόρεια...!
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
bound, column, combobox, customer, default, field, phone, δεσμευμένη, λίστα, πελάτης, πλαίσιο, προεπιλογή, στήλη, στοιχεία, σύνθετο, τηλέφωνο


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
αναζητηση απο διαφορετικα πεδια. grigoris1 Access - Ερωτήσεις / Απαντήσεις 14 05-02-16 12:15
Αναζήτηση σε πολλά πεδία intefix Access - Ερωτήσεις / Απαντήσεις 2 22-02-15 19:06
[Γενικά] Συνάρτηση IF και αναζήτηση σε πεδία anestaki Excel - Ερωτήσεις / Απαντήσεις 9 29-03-12 00:09
[Γενικά] Διαδοχικά Αθροίσματα ΘΟΔΩΡΟΣ Excel - Ερωτήσεις / Απαντήσεις 10 10-02-12 00:40
[ Φόρμες ] Αναζήτηση σε πολλα πεδία lammis Access - Ερωτήσεις / Απαντήσεις 10 13-04-11 12:59


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