| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Γουάου, το θέμα έχει πάρει φωτιά! Φίλε schizo χαίρομαι που επανήλθες με εξηγήσεις και νέα αντιμετώπιση και μου άρεσε πολύ και το εφέ που πρόσθεσες! (η μπάρα). ![]() Θέλω να μου πείτε για τις διπλοεγγραφές τι είδους ήταν γιατί ένα ερώτημα που έτρεξα δεν βρήκε. Επίσης μέσα στον κατάλογο υπάρχουν παραλλαγές του ίδιου ονόματος επίτηδες (γιάννης, γιαννακός π.χ). Στα ορθογραφικά πάσο. Να ξέρετε επίσης ότι έχω και άλλους πίνακες με πολλά στοιχεία οπότε ετοιμαστείτε! |
|
#2
| ||||
| ||||
|
Καλησπέρα στα κομάντα του ms-office! ![]() Μάριε, ασχολήθηκα λίγο με την εφαρμογή σου και θα συμφωνήσω με τους Γιώργους ότι η ιδέα σου αξίζει συγχαρητήρια! Την πιο μεγάλη ευθύνη στο θέμα της ταχύτητας πάντως, τη φέρει η έκφραση: Κώδικας: ... If pithanotita >= Rnd Then ... Το μεγαλύτερο ποσοστό του πίνακα ονομάτων είναι αυτό του Γιώργου(0,1221). Όμως η Rnd() επιστρέφει μια τιμή μεταξύ 0 και 1. Φανταστείτε λοιπόν πόσες "λούπες" πάνε χαμένες..! ![]() (Δοκίμασα την προσθήκη 10000 ονομάτων και ...μ' έστειλε για τσιγάρο! )Η λύση σε αυτό είναι να αναγκαστεί η Rnd() κάθε φορά να επιστρέφει μια τιμή μεταξύ 0 και 0,1221. Αν έχετε ακόμη όρεξη, αντικαταστήστε την cmdAppendNames_Click() με αυτή: Κώδικας: Private Sub cmdAppendNames_Click()
Dim i As Long
Dim lngAsked As Long
Dim strSQL As String
Dim sngMaxFreq As Single
i = 0
lngAsked = CLng(Me.txtNamesCount)
If lngAsked Then
With CurrentDb.TableDefs("tblNames").OpenRecordset(4)
If .RecordCount Then
DoCmd.Hourglass True
SysCmd acSysCmdInitMeter, "Append names...", lngAsked
.MoveLast
mintCount = .RecordCount
.FindFirst ("[pososto] < 1")
sngMaxFreq = !pososto
strSQL = "INSERT INTO tblRandomOnomata (onoma) SELECT """
Do While i < lngAsked
Randomize
.FindFirst ("[onomaID] = " & Int((mintCount * Rnd) + 1))
If !pososto >= (Rnd * sngMaxFreq) Then
CurrentDb.Execute strSQL & !onoma & """ AS onoma;"
i = i + 1
SysCmd acSysCmdUpdateMeter, i
End If
Loop
End If
DoCmd.Hourglass False
SysCmd acSysCmdRemoveMeter
End With
End If
End Sub
αλλά έχω την εντύπωση πως βελτιώθηκε και λίγο η απόκλιση. Οφείλω όμως να σου ζητήσω συγγνώμη Μάριε που αφαίρεσα την progress bar. Το αισθητικό αποτέλεσμα ήταν τέλειο αλλά η progress bar της Access είναι ταχύτερη και στην ταχύτητα πονάει λίγο η διαδικασία. (Εδώ που τα λέμε θα μπορούσε να βελτιωθεί πολύ και διαδικασία ενημέρωσης αλλά...) OffTopic: Επίσης, να σου ζητήσω συγγνώμη που σε παρεξήγησα πριν αλλά όπως είπες και εσύ για όλα φταίει ο γραπτός λόγος που στερείται ύφους. ![]() Γιαυτό όμως τα έχουμε τα σκασμένα τα emoticons! Βάλτε και κανένα και μην φοβάστε, δεν σας τα χρεώνουμε. ![]() Παράθεση:
Δε μασάμε εμείς...!
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ![]() ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
|
#3
| ||||
| ||||
| Παράθεση:
Κώδικας: SELECT fldName, Count(fldName) AS CountOffldName FROM tblNames GROUP BY fldName HAVING (((Count(fldName)))>1); Και μια σχετική και πολύ χρήσιμη (όπως αρχικά φαίνεται) σελίδα: Ελληνικά Ονόματα Ελλήνων και Ελληνίδων, Στατιστική Συχνότητα Πάντως Γιώργο, από αριθμό ονομάτων ...του ρίχνεις στα αυτιά του foundali..!
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ![]() ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
|
#4
| |||
| |||
|
Καλημέρα στην παρέα Προκειμένου να δοκιμαστούν τα προγράμματα που δημιούργησε η παρέα, σε πραγματικές συνθήκες, χρησιμοποίησα ένα πίνακα 1693 διαφορετικών ονομάτων. Οι συχνότητες (πιθανότητες) των ονομάτων είναι τυχαίες και έχουν άθροισμα 1 (100%). 1. Το RandomNamesMarios2.mdb είναι το πρόγραμμα που δημιούργησε ο Μάριος. Λειτουργεί κανονικά, αλλά είναι αργό. 2. Το RandomNamesMarios3.mdb (επισυνάπτεται) είναι το πρόγραμμα του Μάριου, όπως τροποποιήθηκε από το Γιάννη. Έχει βελτιωθεί στην ταχύτητα και λειτουργεί κανονικά. 3. Το NameFrequency.mdb (δεν επισυνάπτεται) είναι το πρόγραμμα του Γιάννη. Είναι ταχύτατο αλλά σε πραγματικές συνθήκες εμφανίζει λάθος χρόνου εκτέλεσης. Επίσης και με τον πίνακα των περιορισμένων ονομάτων αν ζητήσουμε μικρό δείγμα, πχ 12 εγγραφών θα δημιουργήσει δείγμα των 17 εγγραφών. Στα παραπάνω προγράμματα οι αλγόριθμοι είναι πρωτότυποι, ευφυείς και λογικοί, αλλά δημιουργούν και κάποιες υπόνοιες για την ορθότητά τους. 4. Στο RandomNamesGorge.mdb (επισυνάπτεται) , προκειμένου να γίνει σύγκριση με τα προηγούμενα, χρησιμοποιώ μια κλασική μέθοδο δειγματοληψίας. Δημιουργείται μια κληρωτίδα ονομάτων, στην οποία η αναλογία κάθε ονόματος (πλήθος εμφάνισης προς συνολικό πλήθος) ισούται με την πιθανότητα του ονόματος και ακολούθως λαμβάνεται τυχαία το δείγμα. Χρησιμοποιεί μια τροποποίηση του περιβάλλοντος χρήστη και του μαγικού (σφαιράτου) κώδικα του Γιάννη. Φαίνεται να λειτουργεί καλά, αλλά χρειάζεται να δοκιμαστεί. Συμπέρασμα: Στο ζόρικο πρόβλημα που έβαλε ο Γιώργος (mistirios); έγινε σημαντική δουλειά, αλλά, κατά τη γνώμη μου, δεν παρουσιάστηκε ακόμα η άριστη λύση. Φιλικά/Γιώργος |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [Συναρτήσεις] πως βρίσκουμε από συγκεκριμένο πίνακα αριθμό ή γράμμα που απουσιάζει | geronik | Excel - Ερωτήσεις / Απαντήσεις | 11 | 01-12-14 20:36 |
| [ Ασφάλεια] Κλείδωμα μετά από συγκεκριμένο αριθμό χρήσεων | parara | Access - Ερωτήσεις / Απαντήσεις | 0 | 31-12-12 13:06 |
| [Γενικά] Εμφάνιση δεδομένων των στηλών που περιέχουν συγκεκριμένο αριθμό στην τελευταία γραμμή | Lefteris | Excel - Ερωτήσεις / Απαντήσεις | 20 | 23-10-12 18:44 |
| [ Πίνακες ] Διόρθωση εγγραφών σε συγκεκριμένο πεδίο | marpapa | Access - Ερωτήσεις / Απαντήσεις | 10 | 15-05-12 20:58 |
Η ώρα είναι 10:48.





)



Υβριδικός τρόπος

