Εκτυπωση τυχαιων ερωτηματολογιων??

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
lam76
Δημοσιεύσεις: 1
Εγγραφή: 10 Δεκ 2008 15:12

Εκτυπωση τυχαιων ερωτηματολογιων??

Δημοσίευση από lam76 » 10 Δεκ 2008 15:19

Γειά σας
Θέλω να κανω μια βάση στην access όπου θα έχω βάλει 100 ερωτήσεις πολλαπλής επιλογής για να εκτυπώνω ερωτηματολόγια 30 ερωτήσεων το καθένα που θα βγαίνουν τυχαίες καθε φορά σύν την κλείδα των σωστών
Έχει κανείς κατι αντίστοιχο ή γνωρίζει για την επιλογή τυχαίων ερωτήσεων απο το σύνολο?
Ευχαριστώ

Άβαταρ μέλους
kon73
Script Master
Δημοσιεύσεις: 224
Εγγραφή: 13 Απρ 2008 23:47
Επικοινωνία:

Εκτυπωση τυχαιων ερωτηματολογιων??

Δημοσίευση από kon73 » 11 Δεκ 2008 08:54

Φίλε Lam76

Αυτό που ζητάς γίνεται κάνοντας χρήση της συνάρτησης Rnd() της VBA Access.

Θα σου αναφέρω περιγραφικά μία τεχνική.

Δημιουργούμε μία συνάρτηση Από - Έως (Ελάχιστος αριθμός - Μέγιστος αριθμός )

Κώδικας: Επιλογή όλων

        Function Randomize(Min,Max as integer) as integer
                     Randomize=Int ((Max-Min + 1) * Rnd + Min)
        End function
Η παραπάνω συνάρτηση επιστρέφει μία τιμή μέσα στο εύρος Min,Max που έχεις βάλει.
Μετά έχεις έναν πίνακα (TblQuestions) ο οποίος πρέπει να έχει και ένα πεδίο (RandomizeID) και αυτό το πεδίο θα ενημερώνεται με τις τιμές που θα επιστρέφει το Randomize για κάθε εγγραφή ξεχωριστά (Με Χρήση RecordSets γεμίζει κάθε εγγραφή ξεχωριστά).
Έτσι θα έχεις το πεδίο RandomizeID με τιμές από Min,Max.


[Παραθέτω αποσπασματικά μέρος κώδικα]

Κώδικας: Επιλογή όλων

set RcdSetRand=currentdb.OpenRecordset("Select * From TblQuestions")
RcdSetRand.Fields("RandomizeID")=Randomize(100,150)
Ενημέρωνεις το SQL String σε ένα κενό ερώτημα σου ("QryQuestions") ή στην σχεδίαση του ερωτήματος επιλέγεις Προβολή SQL.
Όπου και βάζεις όπου RecordNo τις τιμές που θέλεις να επιστρέψει το ερώτημα σου στο παράδειγμά σου 25

Κώδικας: Επιλογή όλων

Currentdb.QueryDefs("QryQuestions").SQL="SELECT TOP "  & RecordNo &" TblQuestions.* FROM TblQuestions ORDER BY TblQuestions.RandomizeID DESC"

Αυτό που ανάφερα είναι μία τεχνική ίσως και όχι η μοναδική. Σου αναφέρω όσο πιο συνοπτικά γίνεται με έμφαση σε μέρος κώδικα.
ΣΗΜΕΙΩΣΗ : Η παραπάνω τεχνική εφαρμόζεται σε επανάληψη όταν θέλουμε να ξαναεπιλέξουμε άλλες πχ 25 εγγραφές.
Αν έχεις πρόβλημα στην υλοποίηση του στείλε μου PM ή topic

Φιλικά

Kon73
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εικόνα

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης