Ανανέωση ιστοσελίδας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 28-07-12, 22:40
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή Ομοιότητα

Καλησπέρα σε όλους.
Χρειάζομαι λίγη βοήθεια έχω κολήσει.
Έχω έναν πίνακα t_ΟΜΟΙΑ στον οποίο καταχωρώ τα όμοια κάποιων αιτημάτων που έρχονται στην υπηρεσία. Όταν το 310 είναι όμοιο με το 345 τότε καταχωρώ αυτομάτως ότι και το 345 είναι όμοιο με το 310 (περιττό βέβαια γιατί μπορεί να προκύψει από ερώτημα). Το πρόβλημά μου είναι άλλο, αν το 345 είναι όμοιο με το 27, το 27 με το 143 κ.ο.κ., τότε θέλω στο 310 να εμφανίζονται στα όμοιά του τα 345-27-143 ...κ.ο.κ όσα όμοια προκύπτουν είτε άμεσα είτε έμμεσα.
Έχω κάνει μια προσπάθεια με ερωτήματα έχω ένα πολυ καλό αποτέλεσμα όχι όμως το 100%.
Όλες οι ιδέες καλοδεχούμενες
Σας ευχαριστώ εκ των προτέρων.

Με εκτίμηση
Δημήτρης
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb omoia_test.mdb (192,0 KB, 13 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 29-07-12, 11:41
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2012
Περιοχή: Πειραιάς
Μηνύματα: 181
Προεπιλογή

Δημήτρη καλημέρα,

Αν κατάλαβα καλά υπάρχει ένα αίτημα, π.χ. το 345, το οποίο κάποια χρονική στιγμή γίνεται εισερχόμενο για πρώτη φορά. Άρα και κάποια άλλα αιτήματα, με κάποιους άλλους αριθμούς π.χ. το 300 ή και το 310 ή και το 321, γίνονται εισερχόμενα για πρώτη φορά.

Μετά έρχονται άλλα αιτήματα π.χ το 10 ή και το 15 ή και το 42 ή και το ..., τα οποία είναι όμοια, ας υποθέσουμε με το 345. Άρα αφού είναι όμοια με το 345, θα είναι όμοια και μεταξύ τους.

Αν ισχύουν τα παραπάνω, χρειάζεσε δύο πίνακες έναν master με τα πρώτα αιτήματα, πχ. το 345,300,310,321... και έναν πίνακα transaction που να τους συνδέει.

π.χ. tbl_omoia με κλειδί 345 και όποια άλλα πεδία θέλεις και έναν πίνακα tbl_trns_omoia με κλειδί 10 ή και το 15 ή και το 42 ή και το ... και LookupField το 345.

ελπίζω να σε βοήθησα
Απάντηση με παράθεση
  #3  
Παλιά 29-07-12, 16:07
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Γειά σας!

Κώστα όλα αυτά υπάρχουν. Ο πίνακας t_ΟΜΟΙΑ έχει τις άμεσες σχέσεις. Έχω και έναν βοηθητικό πίνακα zt_ΟΜΟΙΑ όπου βάζω όλα άμεσα και έμεσα.
Το θέμα είναι τι βάζω στον zt_ΟΜΟΙΑ ώστε να καλύπτομαι 100% με όλα τα ζευγάρια ομοίων.
Έχω κάνει μια προσέγγιση αρκετά καλή με διαδοχικά ερωτήματα (προφανώς θέλει κώδικα με κάποιο Loop να καλύπτονται όλες οι περιπτώσεις) αυτό ψάχνω.
δηλαδή έχω α~β
επειδή όμως β~γ => α~γ
επειδή όμως γ~δ=>α~δ
επειδή δ~ε => α~ε ...... κοκ

Επισυνάπτω τη δικιά μου προσέγγιση (επαναλαμβάνω μερικές φορές -όχι όλες -την παραπάνω διαδικασία με διαδοχικά ερωτήματα).

Σ' ευχαριστώ πάντος για το ενδιαφέρον σου.

Φιλικά
Δημήτρης
Απάντηση με παράθεση
  #4  
Παλιά 29-07-12, 16:08
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Ξέχασα το συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb omoia_2.mdb (336,0 KB, 14 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 30-07-12, 22:49
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Καλησπέρα σε όλους

Νομίζω ότι έλυσα το πρόβλημά μου, είχα ξεκινήσει με λάθος προσέγγιση.
Για όποιον τυχόν ενδιαφέρεται ανεβάζω συνημμενο.
Στη φόρμα frm_omoia_1 με την ανανέωση ενημερώνονται δύο προσωρινοί πίνακες ( μπορούν βέβαια να γίνουν και ένας). Το σύνολο ομοίων είναι στον πίνακα zt_ΟΜΟΙΑ.
Αν κάποιος ξέρει πολύ καλά από κώδικα μπορεί να το βελτιώσει πολύ.
Η φιλοσοφία είναι η εξής: έχουμε τον πίνακα
t_ΟΜΟΙΑ
ID id_omoiu
1 2
1 8
3 2
3 5
3 9
Με συνάρτηση μετατροπής σε Multivalue πεδίο νομίζω η access 2010 το έχει έτοιμο έχουμε τη
μορφή
fld1 fld2
1 2,8 συν το 1
3 2,5,9 συν το 3

στο fld2 όταν υπάρχει ένα τουλάχιστον κοινό στοιχείο το σύνολο ομοίων είναι η ένωση των fld2
πχ οι 1 και 3 έχουν κοινό το 2 και σύνολο ομοίων (1,2,8) του 1 συν (2,3,5,9) του 3 αρα κοινό σύνολο ομοίων (1,2,3,5,8,9) και αφαιρούμε τον εαυτό τους κάνουμε split και τα καταχωρούμε πίνακα ή τα κρατάμε σε ερώτημα. Εγώ επειδή δεν ξέρω τόσο καλά κώδικα πήγα δια της πλαγίου με την ίδια πάντα λογική.

Φιλικά
Δημήτρης
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb omoia_3.mdb (300,0 KB, 6 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 30-07-12, 22:57
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Καλησπέρα σε όλους

Νομίζω ότι έλυσα το πρόβλημά μου, είχα ξεκινήσει με λάθος προσέγγιση.
Για όποιον τυχόν ενδιαφέρεται ανεβάζω συνημμενο.
Στη φόρμα frm_omoia_1 με την ανανέωση ενημερώνονται δύο προσωρινοί πίνακες ( μπορούν βέβαια να γίνουν και ένας). Το σύνολο ομοίων είναι στον πίνακα zt_ΟΜΟΙΑ.
Αν κάποιος ξέρει πολύ καλά από κώδικα μπορεί να το βελτιώσει πολύ.
Η φιλοσοφία είναι η εξής: έχουμε τον πίνακα
t_ΟΜΟΙΑ
ID id_omoiu
1 2
1 8
3 2
3 5
3 9
Με συνάρτηση μετατροπής σε Multivalue πεδίο νομίζω η access 2010 το έχει έτοιμο έχουμε τη
μορφή
fld1 fld2
1 2,8 συν το 1
3 2,5,9 συν το 3

στο fld2 όταν υπάρχει ένα τουλάχιστον κοινό στοιχείο το σύνολο ομοίων είναι η ένωση των fld2
πχ οι 1 και 3 έχουν κοινό το 2 και σύνολο ομοίων (1,2,8) του 1 συν (2,3,5,9) του 3 αρα κοινό σύνολο ομοίων (1,2,3,5,8,9) και αφαιρούμε τον εαυτό τους κάνουμε split και τα καταχωρούμε πίνακα ή τα κρατάμε σε ερώτημα. Εγώ επειδή δεν ξέρω τόσο καλά κώδικα πήγα δια της πλαγίου με την ίδια πάντα λογική.

Φιλικά
Δημήτρης
Απάντηση με παράθεση
  #7  
Παλιά 31-07-12, 11:00
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Ανέβασα λάθος αρχείο δυο φορές το κείμενο.
Τοσωστό είναι αυτό.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb omoia_4.mdb (332,0 KB, 7 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 31-07-12, 11:21
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Δημήτρη, το θέμα που άνοιξες φαίνεται ενδιαφέρον.

Επειδή όμως δεν είναι γνωστή η λογική της βάσης σου δε μπορώ να καταλάβω πλήρως τι ακριβώς αντιπροσωπεύουν τα «όμοια» και σε ποιο ερώτημα θα απαντήσουν.

Για να διευκολύνω τη συζήτηση επισυνάπτω μια απλή και γνωστή ΒΔ, που αφορά ένα σχολείο.

Αποτελείται από:

1) Τον πίνακα «ΚΑΘΗΓΗΤΕΣ» με πρωτεύον κλειδί το «ID_ΚΑΘΗΓΗΤΗ»

2) Τον πίνακα «ΜΑΘΗΤΕΣ» με πρωτεύον κλειδί το «ID_ΜΑΘΗΤΗ»

3) Τον πίνακα «ΚΑΘΗΓΗΤΕΣ_ΜΑΘΗΤΕΣ» με σύνθετο πρωτεύον κλειδί τα πεδία «ID_ΚΑΘΗΓΗΤΗ» και «ID_ΜΑΘΗΤΗ».

Επειδή ένας καθηγητής έχει πολλούς μαθητές και ένας μαθητής πολλούς καθηγητές ο πίνακας «ΚΑΘΗΓΗΤΕΣ_ΜΑΘΗΤΕΣ» είναι ένας ενδιάμεσος πίνακας για τη μετατροπή της σχέσης πολλά προς πολλά σε ένα προς πολλά.

3) Τη σύνθετη φόρμα «ΜΑΘΗΤΕΣ_ΑΝΑ_ΚΑΘΗΓΗΤΗ με την οποία μπορούμε να δούμε τους μαθητές κάθε καθηγητή και να τους διαχειριστούμε (προσθέσουμε, τροποποιήσουμε διαγράψουμε).

4) Τη σύνθετη φόρμα «ΚΑΘΗΓΗΤΕΣ_ΑΝΑ_ ΜΑΘΗΤΗ» με την οποία μπορούμε να δούμε τους καθηγητές κάθε μαθητή και να τους διαχειριστούμε (προσθέσουμε, τροποποιήσουμε διαγράψουμε).

Βλέπουμε ότι στη συγκεκριμένη βάση, χωρίς καθόλου κώδικα, μπορούμε εύκολα να απαντήσουμε στα ερωτήματα: «Ποιους έχει μαθητές ένας καθηγητής» και «ποιους έχει καθηγητές ένας μαθητής».

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

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Σχολείο.mdb (464,0 KB, 17 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 31-07-12, 13:17
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Καλημέρα σε όλους

Γιώργο αν κατάλαβα καλά είσαι συνάδελφος. Είμαι ΠΕ03.
Ασχολούμαι με μια βάση για τη δουλειά της συζύγου που διαχειρίζεται κάποια ερωτήματα.

Στο θέμα μας οι ενδιάμεσοι πίνακες μας δίνουν , αν κατάλαβα καλά, μόνο τις άμεσες σχέσεις.
Εγώ θέλω άμεσες και έμμεσες
Παράδειγμα έχω μια λίστα με ερωτήσεις για ΤΕΣΤ στον πίνακα t_ΕΡΩΤΗΣΕΙΣ με ID 1,2,3,.... αυτή τη στιγμή παρατηρώ και τσεκάρω ότι 1~2 (~=μοιάζει) είχα τσεκαρισμένο ότι 2~4, 2~5 , 4~6 και 7~9, 7~11 δηλαδή ο πίνκας t_ΟΜΟΙΑ έχει δύο στήλες με στοιχεία
1-2 / 2-4 / 2-5 / 4-6 / 7-9/ 7-11
πως θα προκύψει ερώτημα ή προσωρινός πίνακας zt_ΟΜΟΙΑ με στήλες
1-(2,4,5,6) / 2-(1,4,5,6) / 4-(1,2,5,6) / 5-(1,2,4,6) / 6-(1,2,4.5) / 7-(9,11) / 9-(7,11) / 11-(7,9)
στις παρενθέσεις είναι η λίστα ομοίων του καθενός.
Οπότε αν κάνω μια τυχαία επιλογή αυτόματα δηλαδή
από τις 1,2,4,5,6 να επιλεγεί μία μόνο, όμοια από τις 7,9,11 να επιλεγεί μία μόνο

Δηλαδή όταν βρίσκω ένα όμοιο να έχω και το σύνολο των υπολοίπων ομοίων αυτόματα χωρίς άλλη αναζήτηση ή καταχώρηση δηλαδή από τους δύο πίνακες t_ΕΡΩΤΗΣΕΙΣ και t_ΟΜΟΙΑ θα προκύπτει ο zt_ΟΜΟΙΑ , οι φόρμες και όλα τα άλλα είναι δευτερεύοντα.

Ελπίζω να έγινα κατανοητός και περιμένω ευκολότερη λύση

Φιλικά
Δημήτρης
Απάντηση με παράθεση
  #10  
Παλιά 31-07-12, 17:57
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Φίλε Δημήτρη, μου είναι δύσκολο να σε παρακολουθήσω.

Ήλπιζα, με τη βάση που ανέβασα, ότι τα πράγματα θα ξεκαθάριζαν.

Κάνω μια άλλη προσπάθεια μήπως είναι αυτό που θέλεις.

Έχω μια βάση με τους ακόλουθους πίνακες:

1) Τον πίνακα «ΚΑΤΗΓΟΡΙΕΣ_ΕΡΩΤΗΣΕΩΝ» με πρωτεύον κλειδί το πεδίο «ID_ΚΑΤΗΓΟΡΙΑΣ».

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

2) Τον πίνακα «ΕΡΩΤΗΣΕΙΣ» με πρωτεύον κλειδί «ID_ΕΡΩΤΗΣΗΣ».

Αυτός περιέχει (και εμπλουτίζεται) όλες τις ερωτήσεις που μπορούν να περιληφθούν σε κάποιο τεστ.

Ο πίνακας περιέχει και το ξένο κλειδί «ID_ΚΑΤΗΓΟΡΙΑΣ» με βάση το οποίο κάθε ερώτηση κατατάσσεται σε μία κατηγορία (μαθηματικά διαμερίζει το σύνολο των ερωτήσεων).

Όσες ερωτήσεις έχουν ίδιο αριθμό κατηγορίας μπορούμε να τις θεωρούμε «όμοιες».

Ας υποθέσουμε ότι έχουμε τρεις κατηγορίες (1, 2, 3) και θέλουμε σε κάποιο τεστ να κάνουμε τυχαία 5 ερωτήσεις (2 από την κατηγορία 1, 2 από την κατηγορία 2 και 1 από την κατηγορία 3).

Η απάντηση είναι εύκολη:

Με ένα ερώτημα στο πίνακα «ΕΡΩΤΗΣΕΙΣ» και κριτήριο ID_ΚΑΤΗΓΟΡΙΑΣ=1 εμφανίζουμε μόνο τις ερωτήσεις της κατηγορίας 1 («όμοιες») και επιλέγουμε τυχαία 2.

Επαναλαμβάνουμε το ίδιο για τις κατηγορίες 2 και 3.

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

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

ΥΓ Τα μαθηματικά μου αρέσουν αλλά δεν είμαι μαθηματικός.

Τελευταία επεξεργασία από το χρήστη kapetang : 31-07-12 στις 18:09. Αιτία: το 1 σε 3
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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



Η ώρα είναι 20:57.