Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Ευρεση ηλικιας σε συγκεκριμμένη χρονική περίοδο

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 23-11-20, 21:07
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή Ευρεση ηλικιας σε συγκεκριμμένη χρονική περίοδο

Καλησπέρα,

Πως μπορώ να υπολογίσω την ηλικία που ήταν κάποιος σε μια προηγούμενη περίοδο. Δηλαδή,

Ημερομηνία Γέννησης: 01/01/2000
Καταχώρηση: 01/01/2010

Θα πρέπει να δώσει αποτέλεσμα 10ετών...

Ευχαριστω πολύ
Απάντηση με παράθεση
  #2  
Παλιά 24-11-20, 00:20
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Function fAge(dteStart As Variant, dteEnd As Variant) As Variant
'*******************************************
'Purpose: Accurately return the difference
' between two dates, expressed as
' years.months.days
'Coded by: raskew (from MS Access forum)
'Inputs: From debug (immediate) window
' 1) ? fAge(#12/1/1950#, #8/31/2006#) 'Calculate btw 2 specific dates
' 2) ? fAge(#12/30/2005#, Date()) ' Calculate as of today's date
'*******************************************
Dim intHold As Integer
Dim dayhold As Integer

'correctly return number of whole months difference
'the (Day(dteEnd) < Day(dteStart)) is a Boolean statement
'that returns -1 if true, 0 if false
intHold = DateDiff("m", dteStart, dteEnd) + (Day(dteEnd) < Day(dteStart))

'correctly return number of days difference
If Day(dteEnd) < Day(dteStart) Then
dayhold = DateDiff("d", dteStart, DateSerial(Year(dteStart), Month(dteStart) + 1, 0)) + Day(dteEnd)
Else
dayhold = Day(dteEnd) - Day(dteStart)
End If

fAge = LTrim(Str(intHold \ 12)) & " years " & LTrim(Str(intHold Mod 12)) & " months " & LTrim(Str(dayhold)) & " days"

End Function
Απάντηση με παράθεση
  #3  
Παλιά 24-11-20, 13:24
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από pctechdr Εμφάνιση μηνυμάτων
Function fAge(dteStart As Variant, dteEnd As Variant) As Variant
'*******************************************
'Purpose: Accurately return the difference
' between two dates, expressed as
' years.months.days
'Coded by: raskew (from MS Access forum)
'Inputs: From debug (immediate) window
' 1) ? fAge(#12/1/1950#, #8/31/2006#) 'Calculate btw 2 specific dates
' 2) ? fAge(#12/30/2005#, Date()) ' Calculate as of today's date
'*******************************************
Dim intHold As Integer
Dim dayhold As Integer

'correctly return number of whole months difference
'the (Day(dteEnd) < Day(dteStart)) is a Boolean statement
'that returns -1 if true, 0 if false
intHold = DateDiff("m", dteStart, dteEnd) + (Day(dteEnd) < Day(dteStart))

'correctly return number of days difference
If Day(dteEnd) < Day(dteStart) Then
dayhold = DateDiff("d", dteStart, DateSerial(Year(dteStart), Month(dteStart) + 1, 0)) + Day(dteEnd)
Else
dayhold = Day(dteEnd) - Day(dteStart)
End If

fAge = LTrim(Str(intHold \ 12)) & " years " & LTrim(Str(intHold Mod 12)) & " months " & LTrim(Str(dayhold)) & " days"

End Function
Χρίστο γεία σου,

Πρώτα από όλα σε ευχαριστω για την λϋση που πρωτείνεις. Ωστόσο, θα ήθελα μια πιο απευθείας λύση μέσα απο ερώτημα αν ειναι δυνατό....

Σε ευχαριστω
Απάντηση με παράθεση
  #4  
Παλιά 24-11-20, 13:38
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Μπορείς να χρησιμοποιήσεις μέσα στο ερώτημα την συνάρτηση που είναι το πρόβλημα?

Κάνε επικόλληση τον κώδικα που σου έδωσα σε ένα module και μετά μέσα στο ερώτημα γράψε πχ Expr1: fAge([StartDate];[EndDate])
Απάντηση με παράθεση
  #5  
Παλιά 24-11-20, 13:48
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Giorgos.accdb

Πάρε ένα παράδειγμα
Απάντηση με παράθεση
  #6  
Παλιά 24-11-20, 18:21
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από pctechdr Εμφάνιση μηνυμάτων
Συνημμένο Αρχείο 11257

Πάρε ένα παράδειγμα
Χριστο καλησπερα και ευχαριστω ξανά για την πρόθεση να βοηθησεις, Το αποτέλεσμα που επιζητώ να λάβω πρέπει να ειναι Number format, Double , Fixed και decimals 2... η λύση που πρωτείνεις δίνει αποτέλεσμα κειμένου. Υπάρχει καμια περίπτωση μετατροπης ?

Ευχαριστω ξανά
Απάντηση με παράθεση
  #7  
Παλιά 25-11-20, 08:39
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Καλημέρα.
Ερώτηση: Θελεις δλδ μόνο τα χρόνια και όχι Μήνες και μέρες ή θέλεις μόνο μέρες?
Απάντηση με παράθεση
  #8  
Παλιά 25-11-20, 11:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από pctechdr Εμφάνιση μηνυμάτων
Καλημέρα.
Ερώτηση: Θελεις δλδ μόνο τα χρόνια και όχι Μήνες και μέρες ή θέλεις μόνο μέρες?
Χρίστο καλημέρα,

Ειναι απαραίτητος ο υπολογισμός με ακρίβεια σε αριθμό,
Χρόνια, Μήνες, Μέρες

Ειναι σημαντικό αυτό να προκύπτει απευθείας μέσα απο ερώτημα (δεν εχω θέμα αν είναι μέσο vba Ρουτίνας φτάνει να μπεί σε ερώτημα μέσα)

Ευχαριστω πολυ
Απάντηση με παράθεση
  #9  
Παλιά 25-11-20, 11:25
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 205
Προεπιλογή

Και πώς θέλεις τότε το αποτέλεσμα σε Number format, Double , Fixed και decimals 2 ??

Κάτι δεν κολλάει εδώ :)

Αν θέλεις Χρόνια,Μήνες και μέρες που είναι και το σωστό πώς θέλεις το αποτέλεσμα σε ένα πεδίο που είναι αριθμός? Μπορούμε να σβήσουμε τα σχόλια του τύπου χρόνια, μήνες και μέρες αλλά και πάλι το αποτέλεσμα θα είναι κάπως έτσι 10 8 22 εκτός και αν σε βολεύει το 10822 σαν αριθμός. Δεν μπορώ να καταλάβω την λογική σου αν θέλεις γίνε λίγο πιο συγκεκριμένος
Απάντηση με παράθεση
  #10  
Παλιά 25-11-20, 14:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από pctechdr Εμφάνιση μηνυμάτων
Και πώς θέλεις τότε το αποτέλεσμα σε Number format, Double , Fixed και decimals 2 ??

Κάτι δεν κολλάει εδώ :)

Αν θέλεις Χρόνια,Μήνες και μέρες που είναι και το σωστό πώς θέλεις το αποτέλεσμα σε ένα πεδίο που είναι αριθμός? Μπορούμε να σβήσουμε τα σχόλια του τύπου χρόνια, μήνες και μέρες αλλά και πάλι το αποτέλεσμα θα είναι κάπως έτσι 10 8 22 εκτός και αν σε βολεύει το 10822 σαν αριθμός. Δεν μπορώ να καταλάβω την λογική σου αν θέλεις γίνε λίγο πιο συγκεκριμένος
Χρίστο, για τη ηλικία 10 ετών, 3μηνων και 22 ημερών πρέπει να λαμβάνω 10,04 διότι οι 22 μέρες είναι σχεδόν ένας μήνας. Αν ήταν για παράδειγμα 10 μέρες θα πρέπει να έχουμε 10,03
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Στήσιμο ερωτήματος για χρονική περίοδο dimnot Access - Ερωτήσεις / Απαντήσεις 0 03-04-19 16:09
ΑΝΤΙΓΡΑΦΗ ΠΕΔΙΩΝ ΣΕ ΑΛΛΗ ΠΕΡΙΟΔΟ smasak Access - Ερωτήσεις / Απαντήσεις 1 31-07-18 11:30
Εύρεση ηλικίας γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 3 09-01-14 15:34
[Συναρτήσεις] Υπολογισμός ηλικίας Antony Excel - Ερωτήσεις / Απαντήσεις 5 24-05-12 18:58
[Excel07] πλήθος ωρών σε συγκεκριμένη χρονική περίοδο misirlis Excel - Ερωτήσεις / Απαντήσεις 4 07-01-11 05:49


Η ώρα είναι 08:16.