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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 26-01-12, 09:55
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 08-07-2011
Περιοχή: Αθήνα
Μηνύματα: 81
Προεπιλογή Κατάσταση Ανθρώπων Ανά Ημερομηνία

Αγαπητοί Συμφορουμίτες σας χαιρετώ γι άλλη μια φορά...

Θα ήθελα να μάθω αν υπάρχει δυνατότητα να δημιουργήσω μια φόρμα η οποία θα έχει την μορφή ενός φύλλου εργασίας excel, και σαν γραμμές θα έχει Ονοματεπώνυμα, και η κάθε μία στήλη θα περιέχει ημερομηνίες που θα αυξάνονται κατά μία ημέρα...
Στην τομή του ονόματος, με την ημερομηνία θα υπάρχει η κατάσταση του ανθρώπου την συγκεκριμένη ημέρα (στοιχείο το οποίο θα προέρχεται από ερώτημα).

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

Καλημέρα

Στέλιο, με κάποιες προϋποθέσεις θα μπορούσες:

Αρχικά θα πρέπει να δημιουργήσεις τους παρακάτω πίνακες για την καταχώρηση των αναγκαίων στοιχείων.

1. Τον πίνακα (πχ Persons) για την καταχώρηση των στοιχείων των προσώπων (ID_Person, LastName, FirstName, κλπ).

2. Τον πίνακα (πχ Status) για την καταχώρηση των διάφορων καταστάσεων (ID_Status, Status, κλπ).

3. Τον πίνακα (πχ Person_Status) για την καταχώρηση των στοιχείων κατάστασης κάθε προσώπου, σε κάθε ημερομηνία, με πεδία:
  • ID_Person. Εξωτερικό κλειδί για τη σύνδεση με τον πίνακα Persons. Καλό είναι να οριστεί ως πεδίο αναζήτησης (πτυσσόμενο πλαίσιο).
  • ID_Status. Εξωτερικό κλειδί για τη σύνδεση με τον πίνακα Status. Καλό είναι να οριστεί ως πεδίο αναζήτησης (πτυσσόμενο πλαίσιο).
  • ToDate. Για την καταχώρηση της ημερομηνίας.
Τα ID_Status, ToDate μπορούν να οριστούν σύνθετο πρωτεύον κλειδί του πίνακα.

Στη συνέχεια θα δημιουργήσεις ένα ερώτημα επιλογής (πχ qryData) που θα περιέχει πεδία για το ονοματεπώνυμο, την ημερομηνία και την κατάσταση.

Με βάση το ερώτημα qryData μπορείς να φθάσεις στο ζητούμενο:
  • Με ένα συγκεντρωτικό πίνακα ή
  • Με ένα ερώτημα διασταύρωσης και μια φόρμα.

Θα χαρούμε να δούμε στο φόρουμ την ολοκληρωμένη λύση σου.

Αν κάπου κολλήσεις μη διστάσεις να ζητήσεις βοήθεια.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #3  
Παλιά 26-01-12, 12:16
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 08-07-2011
Περιοχή: Αθήνα
Μηνύματα: 81
Προεπιλογή

Γιωργο καταρχην ευχαριστώ για την ανταπόκριση...

Εχω καλές γνώσεις από θεωρία ΒΔ Οπότε όλα οσα αναφέρεις οτι πρέπει να κάνω, τα έχω κάνει ήδη.

Δηλαδη :
Υπάρχει ο Πίνακας Persons με PK το Person_ID
Υπάρχει ο Πίνακας Status με PK το Status ID
Υπάρχει ο ενδιάμεσος Πίνακας (λόγο της σχέσης Πολλά προς Πολλά που δημιουργείται) με PK τα Date, Person_ID (έχοντας σαν δεδομένο ότι ένας άνθρωπος δεν μπορει να έχει 2 διαφορετικες καταστασεις σε μια ημέρα).

Σου επισυνάπτω και το Σχεσιακό σχήμα (οσον αφορα μονο αυτο το κομματι της εφαρμογης)

Έχω πρόβλημα στο να δημιουργήσω την φόρμα όμως....

Χρειάζεται Πρωτα να γεμίσω τον ενδιάμεσο Πίνακα με το καρτεσιανό (dates * Persons) ?

Αν χρειαζεται μπορω να ανεβασω και ενα αντιγραφο της ΒΔ

Ευχαριστω
Συνημμένα Thumbnails
Κατάσταση Ανθρώπων Ανά Ημερομηνία-xoris-titlo.jpg  
Απάντηση με παράθεση
  #4  
Παλιά 26-01-12, 15:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Στέλιο για να προχωρήσουμε θα πρέπει να προσθέσεις τα δεδομένα στους πίνακες και να ανεβάσεις ένα αντίγραφο της ΒΔ.

Ο πίνακας «PersonStatus» θα πρέπει να καλύπτει όλα τα άτομα των οποίων θέλουμε να παρακολουθούμε την κατάσταση σε μια συγκεκριμένη χρονική περίοδο.

Αν πρέπει να παρακολουθείς όλα τα άτομα του πίνακα Persons θα πρέπει να συμπληρωθεί το καρτεσιανό γινόμενο.

Η συμπλήρωση θα μπορούσε να γίνει με ένα ερώτημα προσάρτησης της μορφής:
Κώδικας:
INSERT INTO PersonStatus ( ID_Person, ToDate )
SELECT Persons.ID_Person, Dates.fDate
FROM Persons, Dates;
Φιλικά/Γιώργος
Απάντηση με παράθεση
  #5  
Παλιά 26-01-12, 19:21
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 08-07-2011
Περιοχή: Αθήνα
Μηνύματα: 81
Προεπιλογή

Γιωργο σε ευχαριστω και παλι...

Ειναι οπως το υποψιαζομουν...

Ηθελα να δημιουργησω το GUI χωρις να χρειαστει να εισαγω δεδομενα, ομως απ οτι καταλαβαινω αυτο δεν ειναι εφικτο....

Θα πρεπει να κανω λοιπον insert στον ενδιαμεσο πινακα tbl_programmatismos ολα τα agm, για ολες τις ημερομηνιες (οποιος δει το σχεσιακό που εχω ανεβασει σε προηγουμενο post θα καταλαβει τι εννοω). Επισης επειδη τα ατομα τα οποια με ενδιαφερει να παρακολουθω ειναι διαφορετικα καθε μερα θα πρεπει να προσθεσω στο συμβαν "με την φόρτωση" της φορμας, ενα if statement, το οποιο θα λεει...
If tbl_persons.active = Yes Then
me.txt_status.active = true
Else
me.txt_status.active = false

Αν λεω κατι λάθος, παρακαλω διορθωστε με.

Επσης θα χρειαστει να βαλω ενα κουμπι το οποιο θα καλει το insert που θα φτιαξω ωστε ο χρηστης του προγραμματος, για παραδειγμα, την 1η καθε ετους, να προσθετει τις ημερομηνιες του επομενου ετους

Σε καθε περιπτωση θα το πρωχωρησω μονος, αν δυσκολευτω καπου θα ζητησω βοηθεια. Αν το καταφερω ομως θα ανεβασω ενα αντιγραφο για τους φιλους συμφορουμιτες....
Απάντηση με παράθεση
  #6  
Παλιά 26-01-12, 20:23
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Φίλε Στέλιο εκείνο που κατάλαβα είναι ότι θέλεις μία φόρμα που να δείχνει τα δεδομένα όπως στο φύλλο του excel.

Συγκεκριμένα επικεφαλίδες γραμμών θα είναι ονοματεπώνυμα, επικεφαλίδες στηλών ημερομηνίες και στην τομή τους η κατάσταση του ατόμου.

Για να γίνει αυτή η φόρμα θα πρέπει να σχεδιάσεις τη ΒΔ όπως σου υπέδειξα στα προηγούμενα μηνύματα και να καταχωρήσεις δεδομένα.

Σημειώνω ότι η φόρμα θα εμφανίζει σε πινακοειδή μορφή τα δεδομένα, αλλά δε θα επιτρέπει καταχωρήσεις.

Για τη δημιουργία της φόρμας δε χρειάζεται κώδικας και κουμπιά.

Μπορεί να γίνει με συγκεντρωτικό πίνακα ή με τη βοήθεια ερωτήματος διασταύρωσης.

Ο κώδικάς σου δεν είναι σωστός, αλλά όπως ανέφερα δε χρειάζεται.

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

Αφού πήρες την απόφαση να συνεχίσεις μόνος, σου εύχομαι καλή τύχη=διάβασμα.

Γιώργος
Απάντηση με παράθεση
  #7  
Παλιά 26-01-12, 22:27
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 08-07-2011
Περιοχή: Αθήνα
Μηνύματα: 81
Προεπιλογή

Χαιρετώ κ πάλι το forum...

Κατάφερα να το φτιάξω, αλλα δεν με εξυπηρετεί διότι δεν μπορω να ενημερώσω τον αντίστοιχο πίνακα.

Σε κάθε περίπτωση ευχαριστω για την βοηθεια...

To ανεβάζω ομως, γιατι καποιος μπορεί να το χρειαστει...

Επειδη Υπαρχει θέμα με τα προσωπικά δεδομένα, η ΒΔ ειναι αδεια απο δεδομενα... Μπορειτε να βαλετε οτι θέλετε και να το δοκιμάσετε

Αλγόριθμος :

1. Φτιαχνω το ερωτημα "qry_FullName" το οποιο μου δημιουργει τα ονοματα που θα χρησιμοποιήσω στις γραμμές του πινακα μου

2. Φτιαχνω το ερωτημα "Insert_Into_Programmatismos"

(INSERT INTO tbl_programmatismos ( [day], agm, fullname )
SELECT day, tbl_persons.agm, fullname
FROM Ref_day, Tbl_persons, qry_FullName
WHERE tbl_persons.RankCode >=5
AND tbl_persons.agm = qry_fullname.agm;

Και ετσι γεμίζω τον πίνακα Programmatismos (Οπως πολυ σωστά με προετρεψε και ο φίλος Γιωργος να κανω)

Σημειωση : Θα πρεπει πρωτυτερα να εχω γεμισει τον πινακα days με τις επιθυμητες ημερομηνίες (Καλο ειναι να το κανω σε excel οπου μπορω να το κανω πολυ γηργορα (μεσω της αυτοματης συμπληρωσης λιστας) και μετα να κανω copy - paste στον πινακα μου)

3. Δημιουργω το ερωτημα διασταυρωσης qry_Programmatismos

Ευχαριστώ και πάλι
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Database1.zip (1,07 MB, 65 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη stelianta : 26-01-12 στις 22:46.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Εκτύπωση] Εκτύπωση συνόλων σε κατάσταση απογραφής LEO Excel - Ερωτήσεις / Απαντήσεις 8 08-02-19 15:51
[Excel07] Αντιστοίχηση στοιχείων σε κατασταση προσωπικού nkouk Excel - Ερωτήσεις / Απαντήσεις 12 10-02-16 23:58
[ Συναρτήσεις ] Set την ημερομηνία του συστήματος. pnikolareas Access - Ερωτήσεις / Απαντήσεις 3 19-02-15 11:11
[ Φόρμες ] Ημερομηνία με Calendar stavross Access - Ερωτήσεις / Απαντήσεις 4 29-10-12 18:38
[ Συναρτήσεις ] Ημερομηνία Meteora Access - Ερωτήσεις / Απαντήσεις 10 13-11-10 17:00


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