Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Βοήθεια για αναζήτηση σε Access (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/989-boitheia-gia-anazitisi-se-access.html)

soc07 23-02-11 22:31

Βοήθεια για αναζήτηση σε Access
 
Καλησπέρα. Ειμαι νεος τοσο εδω οσο και στην access και προσπαθω να φτιαξω ενα αρχειο. Πως μπορω να αναζητήσω, απο εναν υπαρχοντα πινακα αν υπάρχει εγγραφη, πχ με ΑΦΜ, και αν υπαρχει να μου την εμφανισει? Ουσιαστικα θελω με καποιον τροπο να κανω ερωτημα αλλα να εισαγω καθε φορα διαφορετικό ΑΦΜ, ή μερος αυτου.

foxone 23-02-11 23:40

1 Συνημμένο(α)
Καλησπέρα Σωκράτη και καλώς όρισες στο forum. Κι εγώ είμαι νέος εδώ.Θα προσπαθήσω να σε βοηθήσω με το παράδειγμα που σου επισυνάπτω. Ουσιαστικά η δουλειά γίνεται με ένα Σύνθετο Πλαίσιο.
Ελπίζω να κατάλαβα σωστά και να σε βοήθησα

Meteora 24-02-11 07:14

Καλημέρα

Δυο προσθήκες στη λύση που πρότεινε ο φίλος μας ο Γιώργος που βελτιώνουν την πρότασή του.
1. Στη ιδιότητα Data - Row source του σύνθετου πλαισίου πρόσθεσα μια επιπλέον επιλογή, ώστε τα ΑΦΜ να βγαίνουν κατά αύξουσα σειρά.
Κώδικας:


SELECT tblone.Αναγνωριστικό, tblone.afm, tblone.Onoma FROM tblone ORDER BY tblone.afm;

Στη φόρμα έγραψα το :
Κώδικας:


Private Sub Form_AfterUpdate()
    Me.Σύνθετο_πλαίσιο6.Requery
End Sub

Έτσι ώστε μετά από κάθε προσθήκη [afm] και [onoma] να ανανεώνεται το σύνθετο πλαίσιο

Φιλικά/ Νικος Δ

soc07 24-02-11 11:46

Καταρχην ευχαριστω για την αμεση απαντηση. Αυτο που θελω, ειναι να εμφανίζω ενα πλαισιο, (το εχω κανει με ερωτημα) στο οποιο θα ζηταει τιμη και θα κανει αναζητηση αυτης της τιμης στον πινακα. πχ αν βαλω 2-3 νουμερα απο το αφμ να μου εμφανιζει ολα τα αφμ που περιεχουν αυτα τα νουμερα. πχ αν βαλω να αναζητησω το 123 να βου βγαλει και τα 123χχχχχχ και τα χχ123χχχ και τα χχχχχχ123 κ.ο.κ., γιατι με το ερωτημα πρεπει να ειναι ακριβες το ΑΦΜ προκειμενου να μου το εμφανισει. Μαλλον ψάχνω για καποιο κριτήριο στο ερώτημα...
Το αποτελεσμα που μου βρισκει, μου το εμφανιζει σε αποσπασμα του πινακα. Υπαρχει περιπτωση να μπορω να πατησω εκει και να με μεταφερει στην συγκεκριμενη εγγραφη σε μορφη φορμας?
Συγνωμη αν σας κουραζω...


Παράθεση:

Στη φόρμα έγραψα το :
Κώδικας:


Private Sub Form_AfterUpdate()
    Me.Σύνθετο_πλαίσιο6.Requery
End Sub

Έτσι ώστε μετά από κάθε προσθήκη [afm] και [onoma] να ανανεώνεται το σύνθετο πλαίσιο

Φιλικά/ Νικος Δ
Τι ακριβως εννοεις στην φορμα εγραψα αυτο?

Meteora 24-02-11 14:16

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

Σωκράτη, έχω για σένα δυο απαντήσεις:
  • Η φόρμα -ως αντικείμενο της access- έχει ορισμένες ιδιότητες, έχει συμβάντα και δέχεται αρκετή παραμετροποίηση. Ένα από τα συμβάντα είναι το "Μετά την ενημέρωση" δηλ. το AfterUpdate. Στο συμβάν αυτό έβαλα μια γραμμή κώδικα!
  • Το σύνθετο πλαίσιο είναι -κατά την ταπεινή μου - γνώμη, ένα ισχυρό εργαλείο εντοπισμού μιας εγγραφής.Στο παράδειγμα του Γιώργου-που ανεβάζω με τις μικρές αλλαγές-κάνε κλικ στο σύνθετο πλαίσιο και γράψε τον αριθμό 3. Θα δεις ότι η Access θα σε πάει στο record 31, το οποίο είναι και το μοναδικό.Στο σχολείο με αυτό το τρόπο βρίσκω όποιο μαθητή (-τρια) θέλω ανάμεσα σε 380 διαφορετικά επίθετα! Αν γράψω Π, τότε πάω στο πρώτο επίθετο που αρχίζει από αυτό το γραμμα (κεφαλαίο ή μικρό), συνεχίζοντας γράφω Ω και πάω στο πρώτο επίθετο που υπάρχει στον κατάλογο , το οποίο ξεκινά από ΠΩ, κ.ο.κ. Με δυο-τρία γράμματα εντοπίζω το επίθετο που θέλω.
Αυτό που ζητάς μπορεί να γίνει δηλ. να γράψω 23 και να με εμφανίσει όλα τα record που περιέχουν το 23, ανεξάρτητα θέσης. Σκέψου όμως πόσες πληκτρολογήσεις πρέπει να κάνεις και τελικά είσαι υποχρεωμένος να ...ψάξεις!

Αυτά αγαπητέ μου

Νίκος Δ

soc07 24-02-11 15:50

Παράθεση:

Αρχική Δημοσίευση από Meteora (Μήνυμα 5363)
Καλημέρα

Σωκράτη, έχω για σένα δυο απαντήσεις:
  • Η φόρμα -ως αντικείμενο της access- έχει ορισμένες ιδιότητες, έχει συμβάντα και δέχεται αρκετή παραμετροποίηση. Ένα από τα συμβάντα είναι το "Μετά την ενημέρωση" δηλ. το AfterUpdate. Στο συμβάν αυτό έβαλα μια γραμμή κώδικα!
  • Το σύνθετο πλαίσιο είναι -κατά την ταπεινή μου - γνώμη, ένα ισχυρό εργαλείο εντοπισμού μιας εγγραφής.Στο παράδειγμα του Γιώργου-που ανεβάζω με τις μικρές αλλαγές-κάνε κλικ στο σύνθετο πλαίσιο και γράψε τον αριθμό 3. Θα δεις ότι η Access θα σε πάει στο record 31, το οποίο είναι και το μοναδικό.Στο σχολείο με αυτό το τρόπο βρίσκω όποιο μαθητή (-τρια) θέλω ανάμεσα σε 380 διαφορετικά επίθετα! Αν γράψω Π, τότε πάω στο πρώτο επίθετο που αρχίζει από αυτό το γραμμα (κεφαλαίο ή μικρό), συνεχίζοντας γράφω Ω και πάω στο πρώτο επίθετο που υπάρχει στον κατάλογο , το οποίο ξεκινά από ΠΩ, κ.ο.κ. Με δυο-τρία γράμματα εντοπίζω το επίθετο που θέλω.
Αυτό που ζητάς μπορεί να γίνει δηλ. να γράψω 23 και να με εμφανίσει όλα τα record που περιέχουν το 23, ανεξάρτητα θέσης. Σκέψου όμως πόσες πληκτρολογήσεις πρέπει να κάνεις και τελικά είσαι υποχρεωμένος να ...ψάξεις!

Αυτά αγαπητέ μου

Νίκος Δ

Νικο, ευχαριστω παρα μα παρα πολυ. Μαλλον κατι καταφερα. Απλα, πως γινεται επιλεγοντας πλεον την εγγραφη που "βρισκεις" πχ το ΠΩ που ελεγες πιο πανω, να με μεταφερει στην συγκεκριμενη εγγραφη σε μορφη φόρμας? Δοκιμαζω με μακροεντολη, αλλα με βγαζει παντα στην πρωτη εγγραφη και οχι σε αυτη που "επελεξα".

Tasos 24-02-11 16:45

1 Συνημμένο(α)
Καλησπέρα κι από μένα!

Δείτε ένα παράδειγμα αναζήτησης σε φόρμα στο συνημμένο.


Η κύρια φόρμα παίρνει δεδομένα από ένα ερώτημα (QryCapCustomers) βασισμένο στον πίνακα tblCustomers:

Το ερώτημα QryCapCustomers περιέχει τα πεδία:
  • ID (Αναγνωριστικό του πίνακα)
  • AFM (Πεδίο του πίνακα)
  • Lastname (Πεδίο του πίνακα)
  • FirstName (Πεδίο του πίνακα)
  • City (Πεδίο του πίνακα)
  • TheName (Υπολογιζόμενο πεδίο που ενώνει τα προηγούμενα (εκτός το ID)
    και με τη βοήθεια της συνάρτησης VBA (ReplaceTones), τα μετατρέπει σε κεφαλαία χωρίς
    τόνους (επιτρέπει στην αναζήτηση να λειτουργήσει ακόμα και αν ο χρήστης δεν χρησιμοποιεί τόνους)
Η Υποφόρμα που περιέχει τις λεπτομέρειες, παίρνει τα δεδομένα από τον πίνακα tblCustomers
και συνδέεται με την κυρία φόρμα μέσω ID.

Τα αποτελέσματα αναζήτησης εμφανίζονται αυτόματα ενώ πληκτρολογούμε στο ανάλογο πεδίο.
Ή αναζήτηση επιστρέφει εγγραφές που το ID τους ισούται με το ID των εγγραφών του πεδίου TheName
όπου τμήμα του περιεχομένου τους ταιριάζει με το περιεχόμενο του πεδίου αναζήτησης.
Έτσι, από ένα πεδίο αναζήτησης μπορούμε να αναζητήσουμε ότιδήποτε περιέχεται στα πεδία:
AFM, Lastname, FirstNameκαι City.

Ελπίζω να σας φανεί χρήσιμο!

Φιλικά

Τάσος

soc07 24-02-11 17:06

Τασο πραγματικα πολυ ωραιο αυτο που ανεβασες, αλλα νομιζω πως μου ειναι πολυ "προχωρημενο" και δυσκολο να το εφαρμόσω στο δικό μου αρχειο! Ειμαι αρχάριος βλεπεις και μου φαινεται πολυ πιο δυσκολο, οσο και καλό να μου φαίνεται.

Meteora 24-02-11 17:29

Καλησπέρα...

Τάσο πολύ καλό. Δηλ. φανταστικό! Με έντονη ...επαγγελματική χροιά. Θα κάνω χρήση της τεχνικής που μας παρουσίασες, σε αναβαθμίσεις την επόμενη διετία...

Σωκράτη, δεν είμαι σε θέση να γνωρίζω σε τι περιβάλλον εργάζεσαι. Άν αυτό που σε πρότεινα δεν μπορείς να το εφαρμόσεις κάνε το εξής: Συμπίεσε την εφαρμογή σου ή το σχετικό τμήμα αυτής και ανέβασέ το στο Forum.
Αν πάλι δεν πρέπει -για λόγους που σε αφορούν - να ανέβει η εφαρμογή σου, τότε πες μου αν έχεις δει τον κώδικα στο afterUpdate του σύνθετου πλαισίου, στην εφαρμογή που ανέβασα.

Τα ξαναλέμε λοιπόν!

Φιλικά/ Νίκος Δ.

soc07 24-02-11 17:40

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

Αρχική Δημοσίευση από Meteora (Μήνυμα 5372)
Καλησπέρα...

Τάσο πολύ καλό. Δηλ. φανταστικό! Με έντονη ...επαγγελματική χροιά. Θα κάνω χρήση της τεχνικής που μας παρουσίασες, σε αναβαθμίσεις την επόμενη διετία...

Σωκράτη, δεν είμαι σε θέση να γνωρίζω σε τι περιβάλλον εργάζεσαι. Άν αυτό που σε πρότεινα δεν μπορείς να το εφαρμόσεις κάνε το εξής: Συμπίεσε την εφαρμογή σου ή το σχετικό τμήμα αυτής και ανέβασέ το στο Forum.
Αν πάλι δεν πρέπει -για λόγους που σε αφορούν - να ανέβει η εφαρμογή σου, τότε πες μου αν έχεις δει τον κώδικα στο afterUpdate του σύνθετου πλαισίου, στην εφαρμογή που ανέβασα.

Τα ξαναλέμε λοιπόν!

Φιλικά/ Νίκος Δ.

Ελπιζω να ειναι οκ


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

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


Search Engine Optimization by vBSEO 3.3.2