![]() |
Βοήθεια για αναζήτηση σε Access Καλησπέρα. Ειμαι νεος τοσο εδω οσο και στην access και προσπαθω να φτιαξω ενα αρχειο. Πως μπορω να αναζητήσω, απο εναν υπαρχοντα πινακα αν υπάρχει εγγραφη, πχ με ΑΦΜ, και αν υπαρχει να μου την εμφανισει? Ουσιαστικα θελω με καποιον τροπο να κανω ερωτημα αλλα να εισαγω καθε φορα διαφορετικό ΑΦΜ, ή μερος αυτου. |
1 Συνημμένο(α) Καλησπέρα Σωκράτη και καλώς όρισες στο forum. Κι εγώ είμαι νέος εδώ.Θα προσπαθήσω να σε βοηθήσω με το παράδειγμα που σου επισυνάπτω. Ουσιαστικά η δουλειά γίνεται με ένα Σύνθετο Πλαίσιο. Ελπίζω να κατάλαβα σωστά και να σε βοήθησα |
Καλημέρα Δυο προσθήκες στη λύση που πρότεινε ο φίλος μας ο Γιώργος που βελτιώνουν την πρότασή του. 1. Στη ιδιότητα Data - Row source του σύνθετου πλαισίου πρόσθεσα μια επιπλέον επιλογή, ώστε τα ΑΦΜ να βγαίνουν κατά αύξουσα σειρά. Κώδικας: Κώδικας: Φιλικά/ Νικος Δ |
Καταρχην ευχαριστω για την αμεση απαντηση. Αυτο που θελω, ειναι να εμφανίζω ενα πλαισιο, (το εχω κανει με ερωτημα) στο οποιο θα ζηταει τιμη και θα κανει αναζητηση αυτης της τιμης στον πινακα. πχ αν βαλω 2-3 νουμερα απο το αφμ να μου εμφανιζει ολα τα αφμ που περιεχουν αυτα τα νουμερα. πχ αν βαλω να αναζητησω το 123 να βου βγαλει και τα 123χχχχχχ και τα χχ123χχχ και τα χχχχχχ123 κ.ο.κ., γιατι με το ερωτημα πρεπει να ειναι ακριβες το ΑΦΜ προκειμενου να μου το εμφανισει. Μαλλον ψάχνω για καποιο κριτήριο στο ερώτημα... Το αποτελεσμα που μου βρισκει, μου το εμφανιζει σε αποσπασμα του πινακα. Υπαρχει περιπτωση να μπορω να πατησω εκει και να με μεταφερει στην συγκεκριμενη εγγραφη σε μορφη φορμας? Συγνωμη αν σας κουραζω... Παράθεση:
|
1 Συνημμένο(α) Καλημέρα Σωκράτη, έχω για σένα δυο απαντήσεις:
Αυτά αγαπητέ μου Νίκος Δ |
Παράθεση:
|
1 Συνημμένο(α) Καλησπέρα κι από μένα! Δείτε ένα παράδειγμα αναζήτησης σε φόρμα στο συνημμένο. Η κύρια φόρμα παίρνει δεδομένα από ένα ερώτημα (QryCapCustomers) βασισμένο στον πίνακα tblCustomers: Το ερώτημα QryCapCustomers περιέχει τα πεδία:
και συνδέεται με την κυρία φόρμα μέσω ID. Τα αποτελέσματα αναζήτησης εμφανίζονται αυτόματα ενώ πληκτρολογούμε στο ανάλογο πεδίο. Ή αναζήτηση επιστρέφει εγγραφές που το ID τους ισούται με το ID των εγγραφών του πεδίου TheName όπου τμήμα του περιεχομένου τους ταιριάζει με το περιεχόμενο του πεδίου αναζήτησης. Έτσι, από ένα πεδίο αναζήτησης μπορούμε να αναζητήσουμε ότιδήποτε περιέχεται στα πεδία: AFM, Lastname, FirstNameκαι City. Ελπίζω να σας φανεί χρήσιμο! Φιλικά Τάσος |
Τασο πραγματικα πολυ ωραιο αυτο που ανεβασες, αλλα νομιζω πως μου ειναι πολυ "προχωρημενο" και δυσκολο να το εφαρμόσω στο δικό μου αρχειο! Ειμαι αρχάριος βλεπεις και μου φαινεται πολυ πιο δυσκολο, οσο και καλό να μου φαίνεται. |
Καλησπέρα... Τάσο πολύ καλό. Δηλ. φανταστικό! Με έντονη ...επαγγελματική χροιά. Θα κάνω χρήση της τεχνικής που μας παρουσίασες, σε αναβαθμίσεις την επόμενη διετία... Σωκράτη, δεν είμαι σε θέση να γνωρίζω σε τι περιβάλλον εργάζεσαι. Άν αυτό που σε πρότεινα δεν μπορείς να το εφαρμόσεις κάνε το εξής: Συμπίεσε την εφαρμογή σου ή το σχετικό τμήμα αυτής και ανέβασέ το στο Forum. Αν πάλι δεν πρέπει -για λόγους που σε αφορούν - να ανέβει η εφαρμογή σου, τότε πες μου αν έχεις δει τον κώδικα στο afterUpdate του σύνθετου πλαισίου, στην εφαρμογή που ανέβασα. Τα ξαναλέμε λοιπόν! Φιλικά/ Νίκος Δ. |
1 Συνημμένο(α) Παράθεση:
|
Σωκράτη... Δεν είναι σωστό να έχεις όλα τα στοιχεία σε ένα πίνακα, αφού κάποια αφορούν πρόσωπο, κάποια σκάφος και κάποια άδεια (τίνος ; του σκάφους ή του προσώπου) Υπάρχουν πεδία που δεν καταλαβαίνω τί σημαίνουν... Δεν ειναι σωστό να ανεβάζεις μια εφαρμογή -ζητώντας υποστήριξη και ο μοναδικός πίνακας να είναι σχεδόν άδειος σε πεδία που ζητάς αναζήτηση ή να έχει ως περιεχόμενο το "q" σε διαφορετικά & άσχετα μεταξύ τους πεδία ! Δείχνει προχειρότητα και όχι μόνο... ...Ας δούμε προτάσεις και από άλλα μέλη... Φιλικά / Νίκος Δ. |
Παράθεση:
Για αυτο εκανα 1 μεγαλο πινακα με φορμες και υποφορμες. Τι προτεινεις? Δεν εχω κανενα προβλημα να το αρχισω απο την αρχη, αν μου προτεινεις ενα πιο "σωστο" τροπο δομησης. Ευχαριστω. Υ.Γ. Δεν θελησα να σας προσβαλω με το q που επισημανες. |
Τάσο έχω πάθει πλάκα.... ΦΟΒΕΡΟΟΟΟ Το είχα δει σε μία εφαρμογή και το ζήλεψα, αλλά δεν μπορούσα να βρω πως γίνεται. Ευθύς το ενσωματώνω σε μία εφαρμογή που έχω σε εξέλιξη. Νάσαι πάντα καλά. Με εκτίμηση Φώτης. ΥΓ: Μετά από 30 λεπτά περίπου, πραγματοποιήθηκε η ενσωμάτωση και στην δική μου εφαρμογή και δουλεύει τέλεια. |
Καλημέρα σε όλους! Νίκο, Φώτη, χαίρομαι που σας άρεσε! Να είστε καλά και καλή συνέχεια! Φιλικά Τάσος |
1 Συνημμένο(α) Καλησπέρα Αγαπητέ Σωκράτη, δεν ήταν ιδιαίτερα δύσκολο σε μένα για να κάνω αυτό που ζήτησες. Όμως ή εφαρμογή που κάνεις δεν είναι σωστή και έτσι δεν θέλησα εξ αρχής να δώσω την λύση που επιθυμείς. Βλέπω όμως ότι επιμένεις -μέσω δεύτερης ανάρτησης- στο ίδιο ζήτημα! Λοιπόν : Φόρμα menuepilogwn ---> ΑΝΑΖΗΤΗΣΗ ΑΤΟΜΙΚΩΝ ΣΤΟΙΧΕΙΩΝ ----> Αναζήτηση με ΑΦΜ ---> Επέλεξε όποιο θες και πάτησε enter ! Δες οτι αντικατέστησα μια μακροεντολή (δεν τα πάω καλά με αυτές) μια μια γραμμή κώδικα vba. Μια μακροεντολή που υπήρχε στο συμβάν AfterUpdate του σύνθετου πλαισίου με Label "Αναζήτηση με ΑΦΜ:", στο οποίο -συνθετο πλαίσιο- έδωσα όνομα combo1 Μη διστάσεις, όπου έχεις δυσκολίες να ρωτήσεις... Καλό απόγευμα Νίκος Δ. |
1 Συνημμένο(α) Καλησπέρα Σωκράτη, όπως επισήμανε και ο Νίκος δεν είναι σωστό να έχεις όλα τα στοιχεία σου σ’ ένα πίνακα. Ειδικά στην περίπτωσή σου, που κάθε ιδιοκτήτης μπορεί να έχει πολλά σκάφη και κάθε σκάφος πολλούς ιδιοκτήτες ,η διαίρεση του πίνακα σε περισσότερους είναι επιβεβλημένη. Για την υλοποίηση μιας σχέσης πολλά προς πολλά απαιτείται η δημιουργία ενός ενδιάμεσου πίνακα με τη βοήθεια του οποίου η σχέση πολλά προς πολλά μετατρέπεται σε δύο σχέσεις 1 προς πολλά. Η βάση δεδομένων που επισυνάπτω δείχνει αδρά πως μπορούμε να διαχειριστούμε μια σχέση πολλά προς πολλά. Περιέχει: 1) Τον πίνακα «tblIdioktites» με πρωτεύον κλειδί το πεδίο «IdioktitisID», που περιέχει τα στοιχεία των ιδιοκτητών σκαφών. 2) Τον πίνακα «tblSkafi» με πρωτεύον κλειδί το πεδίο «SkafosID», που περιέχει τα στοιχεία των σκαφών. 3) Τον ενδιάμεσο πίνακα «tblIdioktitesSkafι» με σύνθετο πρωτεύον κλειδί αποτελούμενο από τα ξένα κλειδιά «IdioktitisID» και «SkafosID». Αν ανοίξεις τις σχέσεις των πινάκων θα δεις πως οι 3 πίνακες συνδέονται και πως η σχέση πολλά προς πολλά υλοποιήθηκε με δύο σχέσεις 1 προς πολλά. 4) το ερώτημα «qryIdioktitesSkafι» εμφανίζει ενωμένα όλα τα δεδομένα σα να είχαμε ένα πίνακα. 5) Τη φόρμα «frmIdioktitesSkafiALL» περιέχει ένα χειριστήριο καρτέλας (Tab). Η πρώτη καρτέλα «Ιδιοκτήτες» παρουσιάζει για κάθε ιδιοκτήτη τα σκάφη του. Σ’ αυτήν μπορούν να προστεθούν ιδιοκτήτες και να επιλεχθούν τα σκάφη που έχουν. Η δεύτερη καρτέλα «Σκάφη» παρουσιάζει για κάθε σκάφος τους ιδιοκτήτες του. Σ’ αυτήν μπορούν να προστεθούν σκάφη και να επιλεχθούν οι ιδιοκτήτες τους. 6) Οι υπόλοιπες φόρμες είναι βοηθητικές. Με λίγη προσπάθεια θα μπορούσες να εφαρμόσεις το παραπάνω σχήμα στη βάση σου. Πιστεύω ότι με την ανάγνωση του άρθρου: Βασικές αρχές σχεδίασης βάσης δεδομένων - Access - Microsoft Office θα κατανοούσες καλύτερα πως γίνεται η κατανομή των δεδομένων σε πίνακες και τις σχέσεις τους. Φιλικά/Γιώργος ΥΓ. Φίλε Νίκο φαίνεται ότι δουλεύαμε ταυτόχρονα |
Νίκο, ευχαριστώ πάρα πολυ για την προσθήκη. Θελώ παρα πολυ να το συνεχισώ και μου έλυσες τα χέρια. Μετα την πολυτιμη βοηθεια, τοσο την δική σου, όσο και του Γιώργου, μολις τελειώσω με την "τσαπατσουλικη" βαση με τον ένα πίνακα, για να ξεκινήσουν να καταχωρούν στοιχεία οι υπόλοιποι στην δουλεια, θα ξεκινήσω την καινούρια απο το μηδέν. Καταλαβαίνω αυτα που μου είπατε και θα προσπαθήσω να τα εφαρμόσω και αν κάποτε καταφέρω να το τελειωσω θα εχω ηδη καταχωρημενα τα στοιχεια για να τα μεταφέρω. Σας ευχαριστω και τους δυο, παρα πολυ για την βοήθεια. |
Καλημέρα TASOS Πολυ καλο το προγραμματακι accsearchform Το εβαλα σε μια εφαρμογη να κανει αναζητηση σε 7000 περιπου εγγραφες αλλα ο κερσορας δεν μετακινιοταν στον επομενο χαρακτηρα παρεμενε στην ιδια θεση. Οταν διεγραψα 2000 περιπου εγγραφες δουλεψε κανονικα. Καμμια λύση??????? Ευχαριστω Φιλικα Γρηγορης |
Καλημέρα Γρηγόρη! Η λογική που έχω εφαρμόσει στο παράδειγμα μου είναι να μην μπορεί ο χρήστης να συνεχίσει να πληκτρολογεί στο πεδίο της αναζήτησης (δεν θα έχει νόημα) όταν με το ηδη πληκτρολογημένο περιεχόμενο δεν βρεθούν εγγραφές δηλ. όταν το αποτέλεσμα είναι 0 εγγραφές. Για παράδειγμα: Έστω ότι πληκτρολογείς τη λέξη "παπα". Η αναζήτηση ελέγχει πρώτα με τη συνάρτηση DCount() αν στο ερώτημα (to Recordset της φόρμας() υπάρχουν εγγραφές που περιέχουν τη λέξη "παπα" και αν η τιμή της DCount() είναι μεγαλύτερη από 0 τότε συνεχίζει στην εφαρμογή φίλτρου. Διαφορετικά, αν η τιμή της DCount() είναι 0 τότε σου περνάει την αμέσως παλαιότερη τιμή του πεδίου και δεν συνεχίζει στην εφαρμογή φίλτρου αφού δεν θα επιστρέψει κάποιες εγγραφές. Αυτός ο έλεγχος γίνεται κάθε φορά που πληκτρολογείς ένα χαρακτήρα στην αναζήτηση. Με απλά λόγια: Αν πληκτρολογήσεις ένα επιπλέον χαρακτήρα στο πεδίο αναζήτησης που θα δεν θα προκαλέσει την επιστροφή έστω και μιας εγγραφής, ο χαρακτήρας αυτός αφαιρείται. Θα σου πρότεινα επίσης να ελέγξεις αν έχεις κάνει τις κατάλληλες προσαρμογές στον κώδικα και στο ερώτημα. Δεν έχει να κάνει με το πλήθος των εγγραφών. Εμπειρικά να αναφέρω ότι ακόμα και σε 50.000 εγγραφές, η ταχύτητα αναζήτησης τρομερά γρήγορη. Φιλικά Τάσος |
1 Συνημμένο(α) Αγαπητε ΤΑΣΟ Ευχαριστω για την αναλυτικη απαντηση . Καταλαβα πως λειτουργει . Δες σε παρακαλω το αρχειακι και πες μου που βρισκετε το λαθος.Αν το βρεις διορθωσε το και στειλτο μου, Ευχαριστω Γρηγορης |
Καλησπέρα Γρηγόρη! Το πρόβλημα οφείλεται στο ότι ο πίνακας σου έχει κενές εγγραφές (μετά τις πρώτες 5000 εγγραφές :wink: ) με αποτέλεσμα να παρουσιάζονται λάθη (#Error) στο ερώτημα και συνεπώς τα φιλτραρίσματα δεν μπορούν να εφαρμοστούν. Τροποποίησε το πεδίο "TheName" στο Ερώτημα ως εξής: Thename: ReplaceTones(nz([AFM];"") & nz([LastName];"")) για να λειτουργήσει η αναζήτηση. Καλή συνέχεια! Φιλικά Τάσος |
ΤΑΣΟ καλημερα ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ δουλεψε . Νασαι καλα ΦΟΒΕΡΟ ,ΛΕΙΤΟΥΡΓΙΚΟ , ΑΠΛΟ Με εκτιμηση Γρηγορης |
Παιδιά με όλα αυτά δεν κατάλαβα και γω πώς γίνεται να κάνω αναζήτηση σε ένα πίνακα και να εισάγω το στοιχείο που θέλω να αναζητήσω εγώ κάθε φορά; Κάτι σαν την Εύρεση που έχει η Access από μόνη της αλλα να καλώ με κλίκ φόρμα ή έστω και το ίδιο το παράθυρο της Εύρεσης;;;; |
Παράθεση:
Γειά σας. Είδα και εγώ αυτό που έχει φτιάξει ο Τάσος και διάβασα και το δικό σου μήνυμα και θα ήθελα να ρωτήσω πως γίνεται να το ενσωματώσω και εγώ. Αλλάζω τίποτα στο κωδικό, το κάνω αποκοπή και επικόλληση;;; Θα ήθελα μια αναλυτική απάντηση. Σας ΕΥΧΑΡΙΣΤΩ |
Παράθεση:
Thename: ReplaceTones(nz([AFM];"") & nz([LastName];"")) Στη θέση του Thename θα βάλεις το όνομα που θέλεις να έχει η στήλη σου και ό,τι βρίσκεται ανάμεσα σε αγκύλες [ ] είναι ονόματα πεδίων (εννοείται πως θα χρησιμοποιήσεις τα δικά σου) Φιλικά, Μάρω |
Παιδιά καλησπέρα. Μάρω σε ευχαριστώ για την ανταπόκριση αλλά δεν σου/σας έδωσα να καταλάβετε σωστά. Εγώ εννοούσα στο συνημμένο του Τάσου στο Νο.#7, τον κώδικα που είχε στην φόρμα για την εύρεση και πώς ο fkonstas το ενσωμάτωσε σε δική του φόρμα. Δηλ. θέλω να μου πείτε πως μπορώ τον κώδικα της φόρμας να τον ενσωματώσω σε δική μου φόρμα. Τι ακριβώς (αναλυτικά) πρέπει να κάνω και τι πρέπει να αλλάξω. ΣΑΣ ΕΥΧΑΡΙΣΤΩ!!!!!!!!!!!!!!!! |
Τασο Να σε ευχαριστησω και εγω με την σειρα μου. Φοβερα, χρησιμο και μουρατό... Το ενσωματωσα, και εγω στην δικη μου εφαρμογη κ δουλεψε τέλεια !!! Ευχαριστώ πολύ |
Καλησπέρα σας Πραγματικά φοβερό το accSearchForm μπράβο στο δημιουργό θέλω να ρωτήσω αν σε μια φόρμα πχ στη frmSearchStopTypingWhenEmpty θέλω να μου εμφανίζει κι άλλα στοιχεία της εγγραφής όπως το e-mail κλπ κλπ τι πρέπει να κάνω; Ευχαριστώ πολύ |
Καλημέρα σας! Θα μπορούσατε να με βοηθήσετε να δημιουργήσω ένα ερώτημα για το θέμα και ένα άλλο ερώτημα για την υπηρεσία έτσι ώστε να γράφω μέρος από αυτά και να μου εμφανίζει τις πιθανές εγγραφές; Με εκτίμηση, Γιάννης |
| Η ώρα είναι 21:17. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.