Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Ορισμός τυχαίου αριθμού σε πεδίο πίνακα
Καλησπέρα σε όλους ... Θα ήθελα τη βοήθειά σας σε ένα πρόβλημα που αντιμετωπίζω. Έχω ένα πίνακα με ονόματα μαθητών και για κάθε όνομα υπάρχει ένα πεδίο όπου θέλω να καταχωρώ ένα τυχαίο αριθμό κλήρωσης μέσω VB αν είναι εφικτό. Θα πρέπει αυτός ο αριθμός να είναι κυμαίνεται μεταξύ δύο τιμών (μικρότερης και μεγαλύτερης πχ 1 και 20 ή 1 και 12) και θα πρέπει να είναι διαφορετικός για κάθε μαθητή. Θα πρέπει να πω ότι το πλήθος των μαθητών θα είναι πάντα μικρότερο ή ίσο με τη μεγαλύτερη τιμή πχ. το 20 ή το 12. Επισυνάπτω τη βάση δεδομένων προς διευκόλυνση Ελπίζω να μη ζητώ πολλά, ευχαριστώ εκ των προτέρων... |
#2
| ||||
| ||||
Αγαπητε φιλε, Δες εαν το αρχειο που σου επισυναπτω ειναι αυτο που ζητας...
__________________ http://www.facebook.com/home.php?ref...00000309992857 |
#3
| |||
| |||
Παράθεση:
Δεν είναι ακριβώς αυτό που θέλω για δύο λόγους 1. Δεν θα πρέπει ο αριθμός κλήρωσης να είναι δεκαδικός και 2. Αν τον αριθμό τον κάνουμε ακέραιο τότε υπάχρει περίπτωση να έχουμε τον ίδιο αριθμό δύο φορές. Είναι σαν να θέλουμε να μοιράσουμε 12 ή 14 ή 20 νούμερα σε μαθητές χωρίς να έχουν τον ίδιο αριθμό δύο μαθητές. Δεν ξέρω πως μπορεί να γίνει ή αν μπορεί να γίνει. |
#4
| ||||
| ||||
Μου πηρε λιγο χρονο αλλα νομιζω οτι ειναι αυτο που ζητας. Σου επισυναπτω την Βαση Δεδομενων...
__________________ http://www.facebook.com/home.php?ref...00000309992857 |
#5
| ||||
| ||||
Καλημέρα σε όλους! Αγαπητέ Δημήτρη, καλωσόρισες στην παρέα μας! Η δημιουργία τυχαίων αριθμών με όριο, επιτυνχάνεται είτε με SQL (βλ. το παράδειγμα του Τόλη), είτε με τη χρήση του αντικειμένου "Scripting.Dictionary" από τη βιβλιοθήκη Scripting Object - "scrrun.dll" (αν χρειαστεί, το βρίσκουμε εδώ: VBE> Tools> References > Microsoft Scripting Runtime). Το αντικείμενο αυτό δεν επιτρέπει διπλοεγγραφές στους πίνακες (Array) που δημιουργεί. Αυτή ακριβώς την ιδιότητα χρησιμοποιούμε για να δημιουργήσουμε έναν πίνακα με μοναδικές τυχαίες τιμές που κατόπιν θα περαστούν στο κατάλληλο πεδίο στον πίνακα της βάσης. Από πλευράς απόδοσης, το "Scripting.Dictionary" είναι ταχύτατο. Δείτε ένα παράδειγμα κώδικα. Ο κώδικας προϋποθέτει ένα πεδίο με το όνομα "LotNr". Option Compare Database
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 26-02-10 στις 18:41. |
#6
| ||||
| ||||
Τάσοοοοοοοοοοοοοοοοοοοοοο ! Το Σαββατοκύριακο τι θα κάνουμε ; Λοιπόν ! Απαγορεύεται να γράφουν στην Access την Παρασκευή - Σάββατο - Κυριακή οι παρακάτω : Τόλης, Γιάννης, Κώστας και Τάσος! Αστειεύομαι. Όλοι περιμένουμε τα γραψίματά τους... Την Καλημέρα -και απο εδώ - σε όλους σας Φιλικά / Νίκος |
#7
| ||||
| ||||
........Αγαπητέ μου θα χρειαστούμε αμέτρητα Σαββατοκύριακα για να καλύψουμε το Θέμα: Office μέχρι την έκδοση 2007! Μετά.. πάμε γι άλλα (Office 2010...)
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 26-02-10 στις 18:39. |
#8
| |||
| |||
Καλησπέρα, Παρουσιάζω μια προσωπική μου συνάρτηση παραγωγής τυχαίων αριθμών και παίρνει απλά την Minimum (Ελάχιστη) και Maximum (Μέγιστη) τιμή. Ενώ αν θέλουμε να την περάσουμε σε SQL ερώτημα αλλάζουμε λίγο την Randomize βάζοντας και το DumField παράμετρο και η μία στήλη θα είναι οι τυχαίοι αριθμοί πχ η στήλη ας λέγεται (FieldRand) θα βάλουμε στην συνάρτηση και το DumField οπότε έχουμε Πχ για εύρος τυχαίων αριθμών από 10 έως 20 "Select Field1, Field2, Randomize(10,20,[Field1]) as FieldRand From Table1"
|
#9
| |||
| |||
Παράθεση:
Καλησπέρα σε όλους τους φίλους του forum . Θέλω να ευχαριστήσω τον Τόλη, τον Τάσο καθώς και τον Κωσταντίνο (Kon73) που ασχολήθηκαν με το πρόβλημά μου. Τόλη είδα τη βάση που μου έστειλες και σε ευχαριστώ για το χρόνο που αφιέρωσες υπάρχει όμως ακόμη ένα πρόβλημα. Επισυνάπτω τη βάση που μου έστειλες με μια νέα φόρμα όπου σε εξηγώ τι θέλω να κάνω. Αν έχεις χρόνο και όρεξη ρίξε μια ματιά όποτε μπορείς και άν μπορείς. Αυτό ισχύει και για όποιον άλλο θα ήθελε να βοηθήσει. Χίλια ευχαριστώ σε όλους και καλό Σαββατοκύριακο. Φιλικά Δημήτρης |
#10
| ||||
| ||||
Δημήτρη έτσι: Κώδικας: Private Sub Εντολή11_Click() Dim i%, RecCount%, fld As DAO.Field, TheKeys As Variant, strSQL$ strSQL = "Select * From " & Me.RecordSource & IIf(Me.FilterOn, " Where " & Me.Filter, vbNullString) With CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) If .RecordCount Then .MoveLast: .MoveFirst RecCount = .RecordCount Set fld = .Fields("ΑρΚλήρωσης") On Error Resume Next With CreateObject("Scripting.Dictionary") While .Count < RecCount .Add Int((RecCount * Rnd) + 1), 0 Wend TheKeys = .Keys End With If Err Then Err.Clear: On Error GoTo 0 For i = 0 To RecCount - 1 .Edit fld = TheKeys(i) .Update .MoveNext Next .Close End With Me.Refresh End Sub
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 27-02-10 στις 03:50. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Παραγωγή τυχαίου αριθμού-Πρόβλημα | parara | Access - Ερωτήσεις / Απαντήσεις | 3 | 06-05-16 19:02 |
Παραγωγή τυχαίου αριθμού & απενεργοποίηση VBA | parara | Access - Ερωτήσεις / Απαντήσεις | 2 | 25-03-16 09:52 |
help πεδιο σε πινακα | sfedona85 | Access - Ερωτήσεις / Απαντήσεις | 5 | 24-02-09 08:44 |
Η ώρα είναι 07:46.