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/1663-eisagogi-imerominias-se-tmima-pedioy.html)

agantos 21-02-12 08:43

Εισαγωγή ημερομηνίας σε τμήμα πεδίου.
 
Καλημέρα!!!! Επιστρέφω με νέα απορία. Κάθε εγγραφή μου σε εναν πίνακα ορίζεται απο έναν μοναδικό κωδικό (πρωτεύων κλειδί) πού εχει την εξής μορφή: 0000/00/000000 όπου τα πρώτα τέσσερα ψηφία είναι ένας τετραψήφιος αριθμός που αλλάζει κάθε εργάσιμη ημέρα στην οποία θα πραγματοποιηθούνε εγγραφές. Τα δυο ενδιάμεσα ψηφία είναι ενας αύξων αριθμός. και τα έξη τελευταία είναι η ημερομηνία αντεστραμμένη δηλ εαν σήμερα εινα 21/02/2012 τοτε είναι το 120221. Αυτό που θέλω είναι όταν ορίζω την ημερομηνία της καταχώρησης να συμπληρώνεται αυτόματα το τελευταίο κομμάτι του κωδικού. Επίσης μπορείτε να μου προτείνεται κάποιο βιβλίο για να ξεκινήσω να μαθαίνω περι VBA;

Ευχαριστώ προκαταβολικά.

nasos23 21-02-12 10:20

1 Συνημμένο(α)
Καλημέρα στην παρέα.
Καλημέρα Ανθή.
Παίρνοντας αφορμή απο εδώ.
http://www.ms-office.gr/forum/access...rithmisis.html
δες το συνημμένο.
Πιθανό να σε εξυπηρετεί

Φιλικά
Νάσος

kapetang 21-02-12 14:38

Ανθή, Καλησπέρα

Για να μπαίνει αυτόματα στο τελευταίο τμήμα του πρωτεύοντος κλειδιού η ημερομηνία καταχώρησης, δοκίμασε το εξής:

1. Στην προβολή σχεδίασης του πίνακα θέσε προεπιλεγμένη τιμή (Default Value) την παράσταση:
"/" & Format(Date();"yymmdd")

2. Στη φόρμα καταχώρησης των στοιχείων πρόσθεσε τον κώδικα:

Κώδικας:

Private Sub ID_GotFocus()
    Me.ID.SelStart = 0
End Sub

Το ID, θα πρέπει να αντικατασταθεί με το πραγματικό όνομα του πλαισίου κειμένου.

Η ημερομηνία καταχώρησης λαμβάνεται από το χρονόμετρο του PC

Για βιβλία VBA έχει ξαναγίνει συζήτηση στο φόρουμ και παλιότερα. Δες το σύνδεσμο.

http://www.ms-office.gr/forum/visual...ions-help.html

Φιλικά/Γιώργος

agantos 22-02-12 09:15

Καλημέρα και ευχαριστώ πολύ για την βοήθεια!!! Νομίζω πως η απάντηση του κυρίου Γιώργου απευθύνεται περισσότερο σε αυτό που χρειάζομαι. Και επιπλέον το οτι είναι το 666 :evil: μηνυμά του με προκαλεί να το προτιμήσω. Μονο που εχω ενα πρόβλημα. Θέλω να ορίζω εγώ την ημερομηνία και οχι ο υπολογιστης που είναι πιο συνεπής απο μένα. Γίνεται?

Ευχαριστώ για την βοήθεια σας!!!

kapetang 22-02-12 15:44

Καλησπέρα Ανθή

Υποθέτω ότι το πλαίσιο κειμένου στο οποίο πληκτρολογείται η ημερομηνία λέγεται «fDate».

Αν στη φόρμα προσθέσουμε τον παρακάτω κώδικα,

Κώδικας:

Private Sub fDate_AfterUpdate()
    If IsDate(Me.fDate) Then
        If Len(Nz(Me.ID)) = 0 Or Len(Me.ID) = 7 Then
            Me.ID = "/" & Format(Me.fDate, "yymmdd")
        ElseIf Len(Me.ID) = 14 Then
            Me.ID = Left(Me.ID, Len(Me.ID) - 6) & Format(Me.fDate, "yymmdd")
        End If
    End If
End Sub

Private Sub ID_GotFocus()
    If Len(Nz(Me.ID)) = 7 Then Me.ID.SelStart = 0
End Sub

θα πετύχουμε τα εξής:

Μόλις βγούμε από το «fDate», αφού πληκτρολογήσουμε ή αλλάξουμε μία ημερομηνία, στο πλαίσιο κειμένου του πρωτεύοντος κελιού «ID»:
  • Αν το ID είναι κενό θα προστεθεί η ημερομηνία σε μορφή «/yymmdd».
  • Αν είναι πλήρως συμπληρωμένο θα αντικατασταθεί το τμήμα της ημερομηνίας με τη νέα.
  • Αν έχει άλλο περιεχόμενο δε θα γίνει αλλαγή.
Φιλικά/Γιώργος

Υ.Γ Συμφωνώ με τη λογική της επιλογής σου. Το 666 είναι εγγύηση!!!!:dft011:

agantos 24-02-12 08:37

Τέλεια!!!! Ευχαριστώ.:yahoo:


Η ώρα είναι 15:27.

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


Search Engine Optimization by vBSEO 3.3.2