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

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

Κλειστό Θέμα

 

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

Καλησπέρα σε όλους,

Άλλο ένα θέμα το οποίο ζητάω την βοήθεια των έμπειρων μελών του φόρουμ.

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

Εφόσον λοιπόν καταχωρηθούν οι ημερομηνίες και όλα τα σχετικά που περιλαμβάνει η κυρίως φόρμα, και εφόσον αποθηκευθούν φυσικά, τότε μπορούμε να αρχίσουμε την καταχώρηση των φαγητών ανά ημέρα και ανά κατηγορία γεύματος φυσικά.

Εφόσον γίνει καταχώρηση την πρώτη ημέρα της εβδομάδας (Δευτέρα) και για το πρώτο γεύμα της ημέρας (Πρωινό), τότε μέσω του command "Copy" γίνεται αυτόματη αντιγραφή οποιονδήποτε φαγητών έχουν καταχωρηθεί σε όλα τα γεύματα (ανά κατηγορία) σε όλες πλέον τις ημέρες έτσι ώστε να διευκολύνεται η διαδικασία για να μήν χρειάζεται να αναλωθεί χρόνος για την συμπλήρωση φαγητών και γευμάτων σε όλες τις άλλες τις ημέρες.

Το ζητούμενο:

Θέλω λοιπόν να βάλω ακόμη ένα command μέσω του οποίου να μπορώ να αντιγράφω επιλεκτικά πλέον τα φαγητά και τα γεύματα ανά κατηγορία όμως σε όλες τις άλλες ημέρες. Δηλαδή να μπορώ να αντιγράψω μόνο πχ το Πρωινό ή το Δείπνο και όχι ολα.

Κάθε βοήθεια ευπρόσδεκτη και φυσικά εκτιμητέα πάνω από όλα.

Σας ευχαριστώ εκ προτέρων
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Αντιγραφή ανά Κατηγορία Γεύματος.zip (248,8 KB, 16 εμφανίσεις)
  #2  
Παλιά 06-09-14, 12:16
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Γιώργο, δες μια πρόταση στην επισυναπτόμενη ΒΔ.

Δε χρησιμοποίησα τη δική σου επειδή δεν περιορίζεται στο ζητούμενο, η σχετική φόρμα δε λειτουργεί και επειδή πιστεύω ότι οι τροφές μιας δίαιτας θα πρέπει να έχουν το δικό τους πίνακα.

Ελπίζω να μπορέσεις να την προσαρμόσεις στη βάση σου.

Η πρόταση στηρίζεται στη σχεδίαση της βάσης σου αλλά με κάποιες διαφορές.

Συγκεκριμένα η λογική και σχεδίαση της επισυναπτόμενης ΒΔ είναι η ακόλουθη:

1) Δίαιτες κάνουν πελάτες. Τα στοιχεία των πελατών αποθηκεύονται στον πίνακα tblCustomers.

2) Κάθε πελάτης, στη διάρκεια της ζωής του, μπορεί να ακολουθήσει πολλούς τύπους δίαιτας.

Τα στοιχεία αυτά αποθηκεύονται στον πίνακα tblDiet.

3) Σε κάθε δίαιτα (τύπο) πελάτη θα πρέπει να καθοριστεί για κάθε μέρα (Δευτέρα, Τρίτη, κλπ) πότε θα τρώει (πρωί, μεσημέρι, κλπ).

Τα στοιχεία αυτά αποθηκεύονται στον πίνακα tblDietDetails .

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

Τα στοιχεία αυτά αποθηκεύονται στον πίνακα tblDietFoods (εδώ διαφέρουν οι βάσεις).

Στη ΒΔ υπάρχουν και οι βοηθητικοί πίνακες cboMealGat και tblFoodAnalysis που τροφοδοτούν CoboBox.

Ανοίγοντας τη ΒΔ φορτώνεται η σύνθετη (ιεραρχική φόρμα) frmDiet.

Αποτελείται από 3 φόρμες.

1) Η κύρια φόρμα στηρίζεται στον πίνακα tblDiet. Περιέχει σύνθετο πλαίσιο για την επιλογή του πελάτη και την εμφάνιση των διαιτών μόνο αυτού.

2) Η πρώτη δευτερεύουσα φόρμα στηρίζεται στον πίνακα tblDietDetails.

Περιέχει CheckBox και κουμπιά για τον καθορισμό εύκολα για κάθε μέρα πότε θα τρώει ο πελάτης.

3) Η δεύτερη υποφόρμα στηρίζεται στον πίνακα tblDietFoods.

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

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

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip CopyDiet.zip (103,2 KB, 20 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 06-09-14 στις 12:21. Αιτία: αλλαγή λέξης
  #3  
Παλιά 06-09-14, 12:55
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Καλημέρα Γιώργο,

Θα ήθελα να σε ευχαριστήσω πάρα πολύ που αφιέρωσες έστω κάποιο χρόνο έτσι ώστε να μου ετοιμάσεις μια σχετική νέα προσέγγιση επι του θέματος που ασχολούμαι. Ωστόσο, θα ήθελα εάν μπορείς να μου εξηγήσεις λίγο την "φιλοσοφία" της αντιγραφής μέσω του σχετικού command που έχεις βάλει στην εν λόγο φόρμα.

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

Παρόλα αυτά θέλω να διευκρινήσω ότι η βάση που έχω επισυνάψει είναι ένα πολύ πιο "απλοποιημένο" παράδειγμα το οποίο απέχει πάρα πολύ απο την πραγματική βάση. Απλά βασίστηκα στα δικά σου φίλε λεγόμενα ώς προς το να κοινοποιήσω ένα παράδειγμα έτσι ώστε να μπορεί κάποιος φίλος να κατανοήσει τι κάνω και τι ζητάω να κάνω.

Θα είναι μεγάλη χαρά μου εάν και εφόσον το απαιτήσουν οι συνθήκες να παρουσιάσω την πραγματική βάση σε εσένα φίλε (μέσω skype - teamviewer etc) εάν και εφόσον υπάρχει διάθεση.

Σε ευχαριστώ άλλη μια φορά Γιώργο και εύχομαι να σε έχει ο θεός καλά πάντα.!
  #4  
Παλιά 06-09-14, 15:08
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Πράγματι, πολλές φορές επισήμανα ότι αν κάποιος ζητάει βοήθεια καλό είναι να επισυνάπτει και ένα δείγμα ΒΔ για να διευκολύνει την κατανόηση του ζητούμενου και να απαλλάσσει όποιον θα ήθελε να βοηθήσει από την ανάγκη δημιουργίας ΒΔ.

Εξυπακούεται ότι το δείγμα της ΒΔ θα λειτουργεί και θα επικεντρώνεται στο ζητούμενο, για να μη χαθεί ο προσφερόμενος να βοηθήσει σε μια θάλασσα από άσχετα αντικείμενα.

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

Όταν ζητάμε να αντιγράψουμε δεδομένα είναι βασικό να προσδιορίσουμε σε ποιο πίνακα κι σε ποια πεδία θα αντιγραφούν καθώς και από πού θα τα πάρουμε.

Σχετικά τώρα με τη φιλοσοφία:

Αφού μετακινηθούμε στη δίαιτα (στον τύπο δίαιτας) κάποιου πελάτη, για κάθε μέρα τσεκάρουμε το φαγητό (πότε θα τρώει) και πατάμε το κουμπί «Αντιγραφή».

Στον πίνακα tblDietDetails θα προστεθούν οι σχετικές εγγραφές (οι εγγραφές που περιγράφουν πότε θα τρώει ο πελάτης).

Μπορούμε να μετακινηθούμε στις εγγραφές αυτές και στην παρακάτω υποφόρμα να καθορίσουμε τα φαγητά (τι θα τρώει ο πελάτης σε κάθε γεύμα (όταν τρώει)).

Όταν μετακινούμαστε στις δίαιτες (στην κύρια φόρμα) τα CheckBox συντονίζονται για να δείχνουν τα γεύματα για κάθε μέρα.

Μπορούμε επίσης να τσεκάρουμε μέρες και γεύματα και να πατήσουμε το κουμπί «Διαγραφή τσεκαρισμένων εγγραφών» για να διαγραφούν οι σχετικές εγγραφές από τον πίνακα tblDetails.

Ταυτόχρονα θα αφαιρεθούν και τα σχετικά φαγητά από τον πίνακα tblDietFoods.

Μπορούμε να αντιληφθούμε πως γίνονται τα παραπάνω μελετώντας το σχετικό κώδικα.

Φιλικά/Γιώργος
  #5  
Παλιά 08-09-14, 22:25
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Γιώργο καλησπέρα,

Θα μελετήσω τα λεγόμενα σου καθώς και το παράδειγμα που ανέβασες και εάν παραστεί αναγαίο θα επανέλθω.

Σε κάθε περίπτωση σε ευχαριστώ πάρα πολύ
  #6  
Παλιά 09-09-14, 22:45
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

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

Θα ήθελα να ρωτήσω εάν και κατά πόσο στο παράδειγμα που έχεις ετοιμάσει για την αντιγραφή γευμάτων θα μπορούσαμε να αντιγράφαμε και τα φαγητά... Αυτό θα ήταν κάτι εφικτό?

Ευχαριστώ εκ προτέρων
  #7  
Παλιά 09-09-14, 23:06
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Με κάποιες συμπληρώσεις θα μπορούσε να γίνει.

Φυσικά θα πρέπει να ξεκαθαρίσει αυτό που γράφω στο προηγούμενο μήνυμά μου:

«Όταν ζητάμε να αντιγράψουμε δεδομένα είναι βασικό να προσδιορίσουμε σε ποιο πίνακα κι σε ποια πεδία θα αντιγραφούν καθώς και από πού θα τα πάρουμε.»

Φιλικά/Γιώργος
  #8  
Παλιά 09-09-14, 23:18
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Γιώργο αναφέρωμαι στην αντιγραφή όλων των σχετικών πεδίων και απο τους δύο πίνακες.

Δηλαδή:

Εφόσον έχω επιλέξει Δευτέρα και καθόρισα γεύμα "Πρωινό" και έχω βάλει 2 φαγητά, να μπορεί να γίνει αντιγραφή (ως έχει) και στις υπόλοιπες ημέρες..

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

Δηλαδή, αν κατάλαβα καλά, ο πελάτης θα τρώει όλες τις μέρες της δίαιτας σε όλα τα γεύματα (πρωί, μεσημέρι, βράδι, κλπ, τα ίδια φαγητά. Είναι δυνατόν;
Βλέπω επίσης ότι αποφεύγεις να αναφέρεις ονόματα πινάκων και πεδίων.
Ειλικρινά άρχισα να μπερδεύομαι και να μη μπορώ να συνεχίσω.
  #10  
Παλιά 10-09-14, 00:45
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-04-2013
Περιοχή: Κύπρος
Μηνύματα: 738
Προεπιλογή

Γιώργο είναι δυνατόν βέβαια εφόσον κάποια φαγητά είναι standard όπως πχ καφές στο πρωινό, δημητριακά κλπ.

Όπως έχω αναφέρει επανελλημένα, είναι ένα πάρα πολύ σύνθετο κεφάλαιο το θέμα με αρκετές παραμέτρους.

Βλέπω επίσης ότι αποφεύγεις να αναφέρεις ονόματα πινάκων και πεδίων.
Ειλικρινά άρχισα να μπερδεύομαι και να μη μπορώ να συνεχίσω.


Γιώργο κάποια πράγματα εννοούνται φίλε μου
Στο παράδειγμα έχουμε τους σχετικούς πίνακες tblDiet ο οποίος δεν επηρεάζεται εφόσον αντιγραφούν στοιχεία, και τους πίνακες tblDietDetails και tblDietFoods.

Θέλουμε να αντιγράψουμε απο τον tblDietFoods τα πεδία Food, Qty, Dosage αφού φυσικά το MealCode παραμείνει το ίδιο, και απο τον tblDietDetails πρέπει να αντιγραφούν τα πεδία DietCode (βασικά θα παραμείνει ίδια η τιμή αλλά σε νέα εγραφή) και Type Of Meal.

Συνοπτικά:

Εάν επιλέξουμε την αντιγραφή των γευμάτων και φαγητών της Δευτέρας στην Τρίτη, τότε

1.) DietCode : Θα επαναληφθεί το ίδιο και στην Τρίτη (πχ2)
2) TypeOfMeal : Θα επαναληφθεί και στην Τρίτη το ίδιο (πχ Πρωινό)
3) DayCode : Θα αλλάξει και θα πάρει την τιμή της Τρίτης (πχ2)
4) Food : Θα αντιγραφεί και στην Τρίτη (πχ Τρίτη > Food > Αστακός βρασμένος)
5) Qty : Θα αντιγραφεί το ίδιο απο την Δευτέρα

Ευχαριστώ και πάλι
Κλειστό Θέμα


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

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



Η ώρα είναι 14:48.