Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Αυτόματη αύξηση τιμής αλλά... σε λεπτά της ώρας (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2081-aytomati-aiksisi-timis-alla-se-lepta-tis-oras.html)

gmax 27-09-12 18:22

Αυτόματη αύξηση τιμής αλλά... σε λεπτά της ώρας
 
Καλησπέρα σε όλο το Forum. Είχα καιρό να ζητήσω κάτι αλλά να που χρειάστηκε. Έχω μια φόρμα της οποίας ένα πεδίο καταγράφει την ώρα με τη μορφή 10:30.Μπορεί αυτή να αυξάνεται αυτόματα σε κάθε νέα εγγραφή κατά 15 λεπτά (+00:15); Η απλή αύξηση τιμής πετυχαίνεται με τον εξής κώδικα If Nz(Me.Controls("όνομα πεδίου"), 0) = 0 Then Me.Controls("όνομα πεδίου") = Nz(DMax("[όνομα πεδίου]", "όνομα πίνακα"), 0) + 1, για να προσθέτει όμως ένα δεκαπεντάλεπτο πως θα το εκφράσω;
Ευχαριστώ πολύ, Γιώργος.

Tasos 27-09-12 21:36

Καλησπέρα Γιώργο!

Μία ημέρα (24 ώρες) στην VB ισούται με τη μονάδα (1).

Συνεπώς:

1 ώρα = 1 / 24 => 0,0416666666666667 της ημέρας

1 λεπτό = 1 / 1440 => 0,000694444444444444 της ημέρας

15 λεπτά = (0,000694444444444444 * 15) ή (15 / 1440)

Για παράδειγμα, αν το πεδίο σου με μορφή σύντομης ώρας περιέχει 02:10 (2 ώρες και 10 λεπτά), η τιμή που έχει αποθηκευτεί είναι: 70 /1440 δηλαδή 0,0486111111111111 της ημέρας.


Θα μπορούσες λοιπόν στην προεπιλεγμένη τιμή του πεδίου να δημιουργήσεις έναν τύπο που θα προσθέτει την ώρα του πεδίου από την τελευταία εγγραφή + (15 / 1440).

Παράδειγμα VBA στο συμβάν της φόρμας "Πριν την εισαγωγή:

Κώδικας:

Private Sub Form_BeforeInsert(Cancel As Integer)
    On Error Resume Next '  Σε περίπτωση που δε υπάρχουν εγγραφές στον πίνακα (  _
                                στην πρώτη εγγραφή ή ώρα θα πρέπει να περαστεί χειροκίνητα).

    Me.dtTime = DSum("[dtTime]", "[Table1]", "[ID]=" & DMax("[ID]", "[Table1]")) + (15 / 1440)
End Sub

Ελπίζω να βοήθησα

Φιλικά

Τάσος

gmax 27-09-12 22:09

Τάσο ευχαριστώ πολύ.
Το έκανα σε συνδυασμό με το "δικό" μου κώδικα (και αυτόν εσείς μου τον έχετε δώσει) και το κλάσμα που μου είπες και λειτουργεί μια χαρά.
Καλό βράδυ και ευχαριστώ άλλη μια φορά!


Η ώρα είναι 18:53.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2