Ανανέωση ιστοσελίδας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 22-02-11, 15:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 08-01-2010
Περιοχή: Διδυμότειχο
Μηνύματα: 17
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Meteora Εμφάνιση μηνυμάτων
Καλημέρα..

Έκανα κάποιες διορθώσεις που αφορούν την επίλυση του ζητήματος...
Καλή συνέχεια

Με εκτίμηση

Νίκος Δ.
Νίκο,
Σ΄ ευχαριστώ πάρα πολύ γαι τη βοήθεια. Ποια βοήθεια δηλαδή, τη λύση του προβλήματος εννοώ. Δεν ξέρω τι να πω. Ένα μεγάλο ευχαριστώ. Αν βρεις λίγο ελεύθερο χρόνο, γράψε με λίγα λόγια τι έκανες, ώστε να μάθουμε και μεις κάτι παραπάνω...Δεν μ΄αρέσει να παίρνω έτοιμη τροφή. Και πάλι σ' ευχαριστώ πολύ, πολύ, πολύ.
Γιώργος
Απάντηση με παράθεση
  #12  
Παλιά 22-02-11, 17:48
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Συνονόματε, θέλω να επισημάνω ότι η αποθήκευση της ηλικίας των παιδιών σε πίνακα δεν αποτελεί καλή ιδέα:
1) Παραβιάζει τον κανόνα σωστού σχεδιασμού των ΒΔ, που απαγορεύει την αποθήκευση στους πίνακες υπολογιζόμενων πεδίων (δεν είναι αναγκαία).
2) Η ηλικία δεν είναι σταθερό μέγεθος, αλλά αυξάνει με την πάροδο του χρόνου.
Συνεπώς θα πρέπει να υπολογίζεται κάθε φορά που ενδιαφερόμαστε να δούμε τις ηλικίες.
Αν υπολογίσουμε την ηλικία, όταν καταχωρήσουμε την ημερομηνία γέννησης και την αποθηκεύσουμε στον πίνακα, αυτή από κει και πέρα όσος χρόνος και να περάσει θα παραμένει σταθερή, δηλαδή θα έχουμε παιδιά που σταμάτησαν να μεγαλώνουν.
Ο καλύτερος τρόπος για να αποτρέψουμε το πρόβλημα είναι να υπολογίζεται η ηλικία βάζοντας τον τύπο σε ένα αδέσμευτο πεδίο της φόρμας, όπως αρχικά έκανες και να διαγράψεις την ηλικία από τον πίνακα των παιδιών.
Στην περίπτωση που θέλεις, οπωσδήποτε, να αποθηκεύεται, πέρα από τη λύση που σου έδωσε ο φίλος μου ο Νίκος, θα πρέπει να μεριμνήσεις κάθε φορά που ανοίγεις τη φόρμα να επαναϋπολογίζονται και οι ηλικίες.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #13  
Παλιά 22-02-11, 20:45
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα μας

Ο Φίλος μου ο Γιώργος έχει δίκιο! Αν η ηλικία των παιδιών δεν ανανεώνεται, τότε η αποθήκευση είναι άχρηστη. Εργάστηκα λίγο περισσότερο στη φόρμα "Γενικά Στοιχεία1" και έκανα κάποιες διορθώσεις στο θέμα της παρουσίασης. Πέταξα άχρηστο υλικό VBA και επιπλέον έβαλα και ένα κουμπάκι που ανανεώνει τις ηλικίες των παιδιών συμφωνα με το now()
Όμως !
Άφησα στο φίλο μας τον Γιώργο (foxone) να επιλέξει ο ίδιος την γραμματοσειρά, το μέγεθός της, το χρώμα στα πεδία και πολλά άλλα.

Αγαπητέ Γιώργο, μάλλον απο VBA δεν ... Η πρότασή μου είναι να διαβάσεις λίγο και θά έχεις όση βοήθεια χρειαστείς από το Forum. Υγεία να έχουμε. Αυτό δεν σημαίνει ότι και τώρα-που δεν έχεις διαβάσει- δεν θα βοηθηθείς. Μπορείς να ρωτήσεις ότι θες. Αν δεν ρωτήσεις και δεν υπάρξει κάποια παρέμβαση τύπου Γιώργου-kapetang, τότε δεν θα μάθεις!

Καλό μας βράδυ

Νίκος Δ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip New Attempt2003 e.zip (56,3 KB, 57 εμφανίσεις)
Απάντηση με παράθεση
  #14  
Παλιά 23-02-11, 19:57
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 08-01-2010
Περιοχή: Διδυμότειχο
Μηνύματα: 17
Προεπιλογή

Αγαπητοί φίλοι καλησπέρα
Για μια ακόμα φορά να ευχαριστήσω όλα τα παιδιά για την προθυμία και τη βοήθειά τους. Λοιπόν αγαπητοί μου φίλοι έχετε δίκιο σ' όλα όσα λέτε. Αλλά στην κατάστασή μου (παντρεμένος, 4 παιδιά, και με πεθερά όπως έλεγε ο Βέγγος σε μια παλιά διαφήμιση) δεν έχω και πολύ χρόνο για διάβασμα και μελέτη. Είμαι παλιά καραβάνα στους Η/Υ από το 1989. Στις Β.Δ. μπήκα με dbase3+ και Clipper 5.0 και αργότερα μπήκα στην Access. Δυστυχώς όπως ανέφερα πιο πάνω δεν κατάφερα να μάθω VBA και περιορίστηκα στα γνωστά της Access. Θα ήθελα όμως να ξεκιμήσω - έστω και τώρα στα γεράματα - να μπω στη VBA. Παρακαλώ λοιπόν, όποιος μπορεί, να μου προτείνει ένα καλό βιβλίο για να ξεκινήσω την VBA. Πρέπει να αγοράσω τη VBA? Υπάρχουν διαφορετικές εκδόσεις για Excel και Access? Από που και πως ξεκινάω?
Για μια ακόμα φορά ευχαριστώ.
Απάντηση με παράθεση
  #15  
Παλιά 24-02-11, 10:28
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα

Αγαπητέ Γιώργο, ούτε μεγάλος είσαι, ούτε χρόνο πολύ θέλεις για να μάθεις κάποια βασικά σχετικά με την VBA Access. Στο λέω αυτό γιατί την ίδια διαδρομή με σένα έχω κάνει (dbase-clipper).
Μετά από ένα μεγάλο διάστημα πλήρους απραξίας 'επανέκαμψα' λόγω της ενασχόλησης με τα διοικητικά στο Λύκειο (υποδ/ντής). Ασχολήθηκα με access ή καλύτερα λίγο access και πιο πολύ Vba Access. Μέσα σε ένα χρόνο και με ένα ρυθμό υπερβολικά αργό, μπορούσα να φτιάξω κάποιες απλές εφαρμογές. Σήμερα -ύστερα απο 2,5 χρόνια- οι εφαρμογές μου μπορούν να καλύψουν σχεδόν κάθε δραστηριότητα στο σχολείο και όχι μόνο.
Φίλε μου, στην εργασία που ανέβασες, υπάρχουν καλά στοιχεία (ο προγραμματισμός είναι σαν το ποδήλατο!).
Επομένως, μπαίνεις σε ένα βιβλιοπωλείο, αγοράζεις ένα βιβλίο που έχει εικόνες, μεγάλα γράμματα, σχετικά λίγες σελίδες και γενικά ένα βιβλίο 'ελαφρύ'. Δεν είναι ανάγκη να τα μάθεις όλα διαβάζοντας ένα βιβλίο!

Φιλικά

Νίκος Δ

Υστερολόγιο : Επίσης έχω μεγάλα παιδιά. Η ενασχόληση με vba-access είναι απόλαυση, άσκηση πνεύματος, τέχνη, ...ρουφηξιά καλού καφέ.
Απάντηση με παράθεση
  #16  
Παλιά 28-02-11, 21:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 08-01-2010
Περιοχή: Διδυμότειχο
Μηνύματα: 17
Προεπιλογή

Νίκο καλησπέρα
Κατ' αρχήν να ζητήσω συγνώμη που δεν απάντησα νωρίτερα στο μήνυμα, αλλά μόλις τώρα μπήκα στο forum. Σ' ευχαριστώ για το κουράγιο. Λοιπόν είμαι "όλος" αυτιά. Περιμένω καποιο τίτλο για VBA Access γιατί εδώ στο Διδυμότειχο, δεν έχουμε τέτοιες δυνατότητες και πολυτέλειες. Βιβλιοπωλεία υπάρχουν, αλλά όχι εξειδικευμένα. Περιμένω νέα σου λοιπόν. Και πάλι ένα μεγάλο ευχαριστώ για τη βοήθεια, τη συμπαράσταση, αλλά και για την ένεση ηθικού.
Γιώργος
Απάντηση με παράθεση
  #17  
Παλιά 16-10-11, 22:48
Όνομα: θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-07-2011
Μηνύματα: 23
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Tasos Εμφάνιση μηνυμάτων
Καλησπέρα σε όλους!

Θα περιγράψω κι εγώ με τη σειρά μου ακόμα μια από τις πολλές λύσεις που μας προσφέρονται στην Access:

Έστω ότι στον πίνακα με το όνομα table1 έχουμε τα εξής πεδία:
  1. ID (Αναγνωριστικό)
  2. StartDate (ημερομηνία)
  3. EndDate (ημερομηνία)
Σε ένα ερώτημα περνάμε τον παρακάτω κώδικα SQL:
Κώδικας:
SELECT table1.ID, table1.StartDate, table1.EndDate, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("yyyy",[StartDate],[EndDate])-IIf(Format([StartDate],"mmdd")>Format([EndDate],"mmdd"),1,0)) AS Years, 
IIf([StartDate] Is Null Or [EndDate] Is Null,"",IIf(Day([StartDate])<=Day([EndDate]),DateDiff("m",[StartDate],[EndDate])
-[Years]*12,DateDiff("m",[StartDate],[EndDate])-[Years]*12-1)) AS Months, IIf([StartDate] Is Null Or [EndDate] Is Null,"",
DateDiff("d",DateAdd("m",[Months],DateAdd("yyyy",[Years],[StartDate])),[EndDate])) AS Days, IIf([StartDate] Is Null Or 
[EndDate] Is Null,"",IIf([StartDate]>[EndDate],"Λάθος καταχώρηση ημερομηνιών!",Switch([Years]=0,"",[Years]=1,
[Years] & " έτος",[Years]>1,[Years] & " έτη") & Switch([Years]=0,"",[Years]>0 And [Months]>0 And [Days]=0," και ",
[Years]>0 And [Months]>0,", ") & Switch([Months]=0,"",[Months]=1,[Months] & " μήνας",[Months]>1,
[Months] & " μήνες") & Switch([Months]=0 And [Years]=0,"",([Months]>0 Or [Years]>0) And [Days]>0," και ",[Months]
>0 Or [Years]>0,"") & Switch([Days]=0,"",[Days]=1,[Days] & " ημέρα",[Days]>1,[Days] & " ημέρες"))) AS FullText
FROM table1;
Το ερώτημα αυτό μας επιστρέφει και τους αριθμούς των Ετών, μηνών και ημερών που πηγάζουν από τη διαφορά των ημερομηνιών καθώς και την απόδοση τους σε συμβολοσειρά.


Φιλικά

Τάσος
Τάσος γειά σου.
Δοκίμασα το κώδικα σου όπως το παράδειγμα πόλυ ωραίος. (πχ. 30 έτη, 2 μήνες και 10 ημέρες).
Δημιούργησα το ερώτημα και το προσαρμόσα σε ένα δικό μου πίνακα1 με τα πεδία : αναγνωριστικο (που είναι και primarykey), επίθετο, όνομα, ημ γεν/σης, ημερομηνία καταχώρησης, και άλλα πεδία (φυσικά υπάρχει και η αντίστοιχη φόρμα) και δούλεψε μία χαρά, Ότι καταχωρόυσα στο πίνακα ή φόρμα ενημερωνόταν το ερώτημα και έδινε την ηλικία
Αυτό που θέλω να σε ρωτήσω είναι πως μπορώ να εμφανίσω το fulltext του ερωτήματος σε ένα πεδίο στον πίνακα και στη φόρμα.

Ευχαριστώ.
Απάντηση με παράθεση
  #18  
Παλιά 17-10-11, 18:51
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

1. Ενώ τα ερωτήματα μπορούν να συνδυάσουν και να εμφανίσουν δεδομένα από πολλούς πίνακες,ένας πίνακας εμφανίζει μόνο τα δεδομένα, που είναι αποθηκευμένα σ’ αυτόν.
Για να εμφανίσεις συνεπώς την ηλικία στον πίνακα θα πρέπει να του προσθέσεις ένα υπολογιζόμενο πεδίο στο οποίο θα αποθηκεύεται η ηλικία.

Η προσθήκη υπολογιζόμενων πεδίων σε πίνακα δεν είναι καλή ιδέα. Δεν είναι αναγκαία, δημιουργεί πρόσθετη δουλειά και συχνά μπορεί να οδηγήσει σε λάθη.
Μπορείς να διαβάσεις λεπτομέρειες στο μήνυμά μου # 12.

2. Για να εμφανίσεις την ηλικία σε μία φόρμα μπορείς:
2α. Να ορίσεις ως προέλευση των εγγραφών της φόρμας το ερώτημα που δημιούργησες και να προσθέσεις ένα πλαίσιο κειμένου με προέλευση το πεδίο «fulltext» του ερωτήματος.
2β. Να ορίσεις ως προέλευση των εγγραφών της φόρμας τον πίνακα και να προσθέσεις ένα αδέσμευτο πλαίσιο κειμένου με προέλευση έναν τύπο που θα υπολογίζει την ηλικία.

Ένας απλός τύπος είναι ο ακόλουθος: =DLookUp("fulltext";"Query1";"ID=" & [ID]).
Στον τύπο θα πρέπει να αντικαταστήσεις το Query1 με το όνομα του ερωτήματος, το ID με το όνομα του αναγνωριστικού στο ερώτημα και το [ID] με το όνομα του αναγνωριστικού στη φόρμα μέσα σε αγκύλες.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #19  
Παλιά 18-10-11, 06:35
Όνομα: θοδωρής
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-07-2011
Μηνύματα: 23
Προεπιλογή

Γιώργο καλημέρα.
Εφάρμοσα τη 2β λύση που μου έδωσες και επιτέλους είδα στη φορμα την πλήρη ηλικία.
Ευχαριστώ πόλυ για τις λύσεις που μου πρότεινες.
Απάντηση με παράθεση
  #20  
Παλιά 06-11-11, 00:02
Όνομα: Στράτος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 29-06-2011
Περιοχή: Θεσσαλονίκη
Μηνύματα: 16
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από schizo Εμφάνιση μηνυμάτων
Για μια γρήγορη λύση, δοκίμασε να βάλεις
=Round((Now()-[imniaGennisis])/365;1)
σε ένα πλαίσιο κειμένου. Αντί για imniaGennisis βάλε το όνομα του πεδίου που θέλεις. Δεν είναι απολύτως ακριβές (λόγω δίσεκτων) αλλά υποθέτω ότι κάνει τη δουλειά που θέλεις. Δε χρειάζεται πάντως να έχεις στη φόρμα πεδίο με την τρέχουσα ημ/νια.
Καλησπέρα...
Χρησιμοποίησα την παραπάνω συνάρτηση για τον υπολογιμό της ηλικίας, αλλά ο αριθμητικός υπολογισμός είναι λάθος... Πχ. Θέτω ως έτος ηλικίας το 1975 και το αποτέλεσμα που έχω σ΄την ηλικία είναι 106...
Μήπως μπορείται να με βοηθήσετε;
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Υπολογισμός φπα q.mrk Access - Ερωτήσεις / Απαντήσεις 1 18-03-15 19:10
Εύρεση ηλικίας γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 3 09-01-14 15:34
[Συναρτήσεις] Υπολογισμός ηλικίας Antony Excel - Ερωτήσεις / Απαντήσεις 5 24-05-12 18:58
[ Φόρμες ] Υπολογισμός ηλικίας mgeorge Access - Ερωτήσεις / Απαντήσεις 4 29-05-11 21:04


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