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/651-anazitisi-se-dio-pedia-diadoxika.html)

gmax 03-07-10 23:03

Αναζήτηση σε δύο πεδία διαδοχικά
 
Καλησπέρα! Παρατήρησα ότι στο forum αυτό βρίσκεις απαντήσεις σε όλα και αποφάσισα να κάνω και εγώ μια ερώτηση. Σε ένα πίνακα που μεταξύ άλλων έχει δύο πεδία, 1ο τηλέφωνο οικίας και 2ο τηλεφωνο εργασίας κάνω αναζήτηση του πελάτη, με ερώτημα, από το πρώτο πεδίο (τηλ οικίας). Υπάρχει τρόπος αν δεν βρεθεί το τηλέφωνο στο πρώτο πεδίο η αναζήτηση να συνεχιστεί στο δεύτερο πεδίο (τηλ εργασίας); Ευχαριστώ εκ των προτέρων!

schizo 04-07-10 00:34

1 Συνημμένο(α)
Σου στέλνω κάτι που ψάχνει και στα δύο πεδία για την ίδια τιμή.
Χρειάζεται προσοχή αν το ερώτημα που χρησιμοποιείς έχει και άλλα κριτήρια.
Αν όχι, τότε το qrySearch είναι πιο απλό και θα σε βολέψει. Αν υπάρχουν κι άλλα κριτήρια, τότε καλό είναι να δουλέψεις με τη λύση του qrySearch2 για να μην μπερδευτείς με τις πολλαπλές γραμμές κριτηρίων (στις οποίες πρέπει να επαναλάβεις τα υπόλοιπα κριτήρια -αν χρησιμοποιήσεις την υλοποίηση του qrySearch-).

gmax 04-07-10 07:08

Τελικά ήταν εντυπωσιακά απλό! Ευχαριστώ πολύ.

nisgia 06-07-10 03:37

1 Συνημμένο(α)
Φίλε Γιώργο, καλωσόρισες στο φόρουμ!

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

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

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

Φιλικά, Γιάννης.

Meteora 06-07-10 16:15

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

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

kapetang 08-07-10 11:08

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

Μελετώντας τον κώδικα, για την αναζήτηση με βάση τον αριθμό τηλεφώνου, έχω την εντύπωση ότι μάλλον δεν απαιτείται η κλήση της διαδικασίας 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

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

nisgia 08-07-10 21:52

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

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

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

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

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

Τα λέμε!
Γιάννης

Meteora 08-07-10 22:25

Φίλτατε Γιάννη σε χαιρετώ !
Περνώντας από Επταχώρι σύντομα - πρώτα ο πανμέγιστος! - θα ρωτήσω για αυτά τα πρόσωπα...
(Καλού - κακού άλλαξα το video με κάποιο άλλο που σηκώνει ...πεθαμένους!!!)
Ωχ! τι μπορεί να πάθουμε...
Να είμαστε όλοι καλά.
Νίκος Δ.

kapetang 09-07-10 10:50

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

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

Φιλικά/Γιώργος
ΥΓ.Τα γράφω μπερδεμένα, ίσως να οφείλεται και στα κλαρίνα του Νίκου.

nisgia 09-07-10 14:49

Δεσμευμένη στήλη σύνθετου πλαισίου
 
Καλησπέρα Γιώργο!

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

Τελικά βρήκα σε τι οφείλεται το πρόβλημα με το 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

Έτσι λοιπόν συμπέρανα πως...
Η δεσμευμένη στήλη των σύνθετων πλαισίων, πρέπει να έχει μοναδικές τιμές.:police:

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

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

Υ.Γ.
Νίκο, φαντάζομαι κατάλαβες ότι αστειευόμουν με το "ουτσεκάδες".
Μην πας στο Επταχώρι και τους ρωτάς για περιστατικά εισβολής από τα βόρεια...!:005:


Η ώρα είναι 15:35.

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


Search Engine Optimization by vBSEO 3.3.2