Όπως περιγράφω και στο θέμα θέλω η βάση να λειτουργεί (ανοίγει) για συγκεκριμένο αριθμό ημερών...
Φτιάχνω λοιπόν ένα πίνακα "tbldays" με πεδίο "firstdate". Πρέπει λοιπόν στο άνοιγμα της βάσης να γίνεται ένας έλεγχος αν το πεδίο firstdate είναι null και αν είναι να πάρει τιμή date() (πρώτη εκτέλεση της βάσης), αν δεν είναι null να γίνεται μια σύγκριση με το Now() και αν η διαφορά τους είναι μεγαλύτερη από χ ημέρες να βγάζει ένα σχετικό msgbox και να μην ανοίγει η βάση, ενώ αν είναι μικρότερη να προχωρά κανονικά το άνοιγμα της βάσης..
Φτιάγνω λοιπόν την παρακάτω συνάρτηση
Κώδικας:
Public Function fTrialDays()
Dim StartDay As Date
'Ελέγχει τον πίνακα
If IsNull(DMax("[firstdate]", "tbldays")) Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO tbldays VALUES ( Now())"
DoCmd.SetWarnings True
Exit Function
Else
StartDay = DMax("[firstdate]", "tbldays")
End If
'Ελεγχος για χ=15 μέρες
If Now() > DateAdd("d", 15, StartDay) Then
'Σχετικό μήνυμα και κλείσιμο της access
MsgBox "Οι x μέρες πέρασαν.", , "Info.."
DoCmd.Quit
else
DoCmd.openForm "frmMain"
End If
End Function
Σε πρώτη φάση λοιπόν δείχνει να δουλεύει, αλλά κατά το τεστάρισμα, βλέπω ότι θα πρέπει μετά την πρώτη φορά που η διαφορά θα είναι μεγαλύτερη από το χ να μην ξαναγίνει ο έλεγχος έτσι αν αλλάξει το systemdate προς τα πίσω να μην "ξεγελιέται" ο κώδικας... Καταλαβαίνω ότι κάπου πρέπει να μπει και μια τιμη Ναι/Οχι που θα αλλάξει όταν γίνει μεγαλύτερη η διαφορά και θα του λέει να μην ξανακάνει έλεγχο. αλλά έχω κολλήσει...
Η όλη ιστορία γίνεται στο "πριν τη φόρτωση" μιας φόρμας logon που είναι και η εκκίνηση της βάσης..
Επίσης τώρα σκέφτομαι ότι θα ήταν καλύτερο να γίνεται στο "κλείσιμο" της φόρμας logon ελέγχοντας και αν ο χρήστης είναι απλός ή admin (έχω στον tblusers πεδίο Ναι/Οχι που το Ναι δείχνει τον admin user kai το Οχι τον απλο user) και αν είναι απλός να τσεκάρονται οι μέρες, αλλιώς ο admin να περνάει ελεύθερα...
Θα ήθελε κάποιος να μου κάνει πράξη (συμπληρώσει) στον κώδικα τα παραπάνω? Επιπλέον αν υπάρχει και κάποιο άλλο σκεφτικό που να κάνει αυτό που θέλω δε θα είχα αντίρρηση.. )
Ευχαριστώ