Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Αυτόματη αύξηση τιμής αλλά... σε λεπτά της ώρας

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 27-09-12, 19:22
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 139
Προεπιλογή Αυτόματη αύξηση τιμής αλλά... σε λεπτά της ώρας

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

Τελευταία επεξεργασία από το χρήστη gmax : 28-09-12 στις 05:37.
Απάντηση με παράθεση
  #2  
Παλιά 27-09-12, 22:36
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Μία ημέρα (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
Ελπίζω να βοήθησα

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 27-09-12, 23:09
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-02-2010
Μηνύματα: 139
Προεπιλογή

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

Τελευταία επεξεργασία από το χρήστη gmax : 28-09-12 στις 05:36.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Αυτόματη αύξηση (κωδικού) κατά 1 σε πίνακα gfevran Excel - Ερωτήσεις / Απαντήσεις 27 02-11-15 01:59
Αυτόματη συμπλήρωση τιμής nafnaki Access - Ερωτήσεις / Απαντήσεις 7 13-02-13 13:45
[ Πίνακες ] Αυτόματη εισαγωγή τιμής. gaz_manos Access - Ερωτήσεις / Απαντήσεις 3 14-11-12 17:59
[Συναρτήσεις] Αυτόματη εμφάνιση ημερομηνίας & ώρας Mike_Lawyer Excel - Ερωτήσεις / Απαντήσεις 6 07-09-11 16:17
[Γενικά] Διαίρεση αριθμού με λεπτά της ώρας. Lefteris Excel - Ερωτήσεις / Απαντήσεις 4 17-05-11 16:10


Η ώρα είναι 20:30.