Καλησπέρα στη παρέα!
Φίλε Γιώργο (kapetang), ευτυχώς οι υπολογιστές αντιμετωπίζουν τις ημερομηνίες
ως σειριακούς αριθμούς, οπότε δεν χρειάζεται να ανησυχείς και τόσο για τα δίσεκτα
και τους κουτσοφλέβαρους όταν πρόκειται για αριθμητικές πράξεις με ημερομηνίες.
Με λίγα λόγια, είναι περιττό να λαμβάνεις υπόψη το έτος, τον μήνα και την ημέρα
όταν το μόνο που θέλεις είναι μια τυχαία, ακέραια τιμή μέσα από ένα εύρος συνεχόμενων τιμών.
Συνεπώς, μια συνάρτηση σαν την παρακάτω κάνει αρκετά καλά αυτή τη δουλειά:
Κώδικας:
Function RandomDate(ByVal dtmLDate As Date, _
Optional ByVal dtmUDate As Date) As Date
If dtmUDate = 0 Then
dtmUDate = Now
End If
Randomize
RandomDate = CDate((Rnd() * (dtmUDate - (dtmLDate))) + dtmLDate)
End Function
Το όρισμα dtmLDate είναι η μικρότερη στη χρονική περίοδο ημερομηνία
ενώ το όρισμα dtmUDate (προαιρετικό) αντιστοιχεί στη μεγαλύτερη.
Tip:
Αν περάσεις τη συνάρτηση Date() στο όρισμα dtmLDate, θα έχεις μια τυχαία ώρα
από τα μεσάνυχτα μέχρι τώρα.
@mistirios
Φίλε Γιώργο, πρώτα απ' όλα, να σε ευχαριστήσω για το πολύτιμο αρχείο που μας έδωσες!
Νομίζω πως του αξίζει μια θέση στα "Χρήσιμα αρχεία".
Thank's a lot!
Ο "κόφτης" που λες, ήταν εκεί για να μην γίνει υπερβολικά πολύπλοκο το ερώτημα
και διαμαρτυρηθεί ο μεταγλωττιστής της SQL.
Όσο για το φύλο των ονομάτων έχεις δίκιο! Ήταν πολύ απλοϊκό το Like "*ς"
αλλά για τις ανάγκες των δοκιμών μου έκανε δουλειά.

Στην συνέχεια βρήκα το Like "!ιίς" για τα ανδρικά και το Not Like "!ιίς" για τα γυναικεία
τα οποία δούλευαν πολύ καλά μέχρι που σήμερα είδα πως το Άδωνις καταλήγει σε "ις".
Εσύ αλήθεια, πως αντιστοίχησες το φύλο σε κάθε όνομα;
Η σημερινή μου προσέγγιση πάντως δουλεύει με αριθμητικές τιμές για τα φύλα
οπότε κοιμάμαι ήσυχος.

Εκτός αυτού, αντιστοιχίζει και μια τυχαία ημερομηνία γέννησης σε επιλεγμένο όνομα.
Όσο για την συχνότητα των ονομάτων, δεν ασχολήθηκα καθόλου και το άφησα για "αύριο".
Εξετάστε τη και αν βρείτε κάτι ενδιαφέρον ή κάποιο πρόβλημα, τα ξαναλέμε.
Φιλικά, Γιάννης.