Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Πίνακες ] Πολλαπλές εγγραφές στον ίδιο πίνακα βάσει Κριτηρίων

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

Κλειστό Θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 28-01-17, 12:00
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή Πολλαπλές εγγραφές στον ίδιο πίνακα βάσει Κριτηρίων

Καλημέρα σας.
Θα ήθελα πριν θέσω το πρόβλημα μου, και εγώ με την σειρά μου να εκφράσω τα συγχαρητήρια μου για την εξαιρετική δουλειά που γίνετε σε αυτό εδώ το Φόρουμ. Το παρακολουθώ εδώ και καιρό, και έχω «δανειστεί» αρκετές φορές «πράγματα» και ιδέες. Η βοήθεια που προσφέρεται σε όλους εμάς που δεν κατέχουμε και τόσο καλά το ms-Office ή προγραμματισμό, είναι ανεκτίμητης αξίας. Και όλα αυτά για το μεράκι μερικών να μάθουν περισσότερα βάσει των ερωτήσεων που παραθέτουμε, (προβλημάτων για εμάς), και εν συνεχεία να προσφέρουν απλόχερα τις γνώσεις τους. Μακάρι να μπορούσα και εγώ να ακολουθήσω το παράδειγμα σας, αλλά λόγω υποχρεώσεων, ( πολλές ώρες στην δουλειά, και ένα 3χρονο στο σπίτι), αλλά και περιορισμένων γνώσεων, προς το παρόν δεν μπορώ να βοηθήσω, όσο μπορώ να βοηθηθώ.
Στο πρόβλημα μου τώρα…….
Πριν προχωρήσω θα ήθελα να πω, ( και αυτό θα Ισχύει πάντα), ότι μετά την διατύπωση του προβλήματος, ΑΝ κάποιος έχει καλύτερη ιδέα του πως μπορεί να γίνει, θα είναι Ευπρόσδεκτο. ΔΕΝ σημαίνει ότι και αν ζητάω κάτι, πρέπει να γίνει και με τον δικό μου τρόπο, γιατί σίγουρα λόγω εμπειρίας κάποιος/α μπορεί να έχει καλύτερη ιδέα. Μπορούμε να αλλάξουμε και όλη την δομή της βάσης ΑΝ αυτό είναι απαραίτητο.
Έχω λοιπόν μια Βάση σε Access, που εκεί φέρνω σε 2 πίνακες, ( Import Maz and Import Trd, που σημαίνει μαζικοί και Παραδοσιακοί πελάτες), δεδομένα από ένα Excel που είχε τα αρχικά δεδομένα, ( αυτό δεν αλλάζει γιατί έτσι θα έρχεται από την εταιρεία).
Πρόβλημα Πρώτο: θέλω οι δύο πίνακες που έχω, Import Maz and Import Trd, να τους μεταφέρω σε ένα πίνακα, ( Discount ), για να έχω τα δεδομένα και των δυο πινάκων μαζεμένα. Το κάνω με ερώτημα προσάρτησης ανά πίνακα, αλλά δουλεύει μόνο το πρώτο ερώτημα, το δεύτερο λόγο ακεραιότητας δεδομένων, «χτυπάει» και δεν προσαρτήσει τις εγγραφές. ΟΛΟΙ οι πίνακες έχουν ακριβώς τα ίδια πεδία, σε όνομα και ιδιότητες. Διαφέρουν μόνο τα δεδομένα, αλλά δεν έχουν καμία σχέση μεταξύ τους, οπότε το θέμα της σχέσης μεταξύ πινάκων δεν ισχύει. Τώρα εδώ ΑΝ κατά την εισαγωγή, μπορούμε κατευθείαν να πηγαίνουν στον πίνακα Discount, κανένα πρόβλημα.
Πρόβλημα Δεύτερο: Εδώ το θέμα γίνεται ποιο πολύπλοκο. Θα πω τον προβληματισμό μου, και κάθε ιδέα είναι ευπρόσδεκτη. Θέλω να βλέπω ανά ημερολογιακό διάστημα τον κάθε όμιλο, ( F/s), ποιες μέρες του μήνα έχει σε ισχύ κάποια προσφορά.
Δηλαδή θα φτιάξω ένα ερώτημα διασταύρωσης με κωδικό, ( F/s ) , μέρες, ( Count ),και ημέρες, ( Begin and End ), και θέλω να βλέπω ότι τον μήνα Μάρτιο, την 3η μέρα τρέχουν 3 προσφορές . Γιατί μετά θα κάνω και άλλα πράγματα που χρειάζεται, πχ δεν πρέπει να υπερβαίνω τις 4 προσφορές την μέρα. Οπότε πρέπει να ενημερώνω την διοίκηση για να προχωρά σε περαιτέρω διαδικασίες που χρειάζονται.
Ξεκίνησα να το κάνω, αλλά όταν έφτιαξα το ερώτημα διασταύρωσης, και ο όμιλος είχε ενεργή προσφορά 15/03/2017 έως 15/04/2017, μου έβγαζε η εκτύπωση, ( και καλά έκανε βάσει λογικής), ότι είχε προσφορά στης 15/03/2017 και στης 15/04/2017, δύο μέρες δηλαδή, ενώ στην πραγματικότητα έχει 30 μέρες!!!!!
Η εκτύπωση του πως θα είναι, την έχω μέσα στο Ecxel με το όνομα "ΠΑΡΑΔΕΙΓΜΑ", γιατί εδώ δεν με αφήνει να ανεβάσω φωτογραφία, για να καταλάβετε τι θέλω, γιατί ίσως να μην μεταφέρω σωστά και κατανοητά τις σκέψης μου.

Έχοντας αυτό το πλάνο, βλέπω τη γίνετε αναλυτικά ανά όμιλο, και έτσι πχ ο Βερόπουλος από 1/3 έως 15/3 ΔΕΝ πρέπει να τρέξει άλλη προσφορά.

Εδώ τώρα θέλω τις ιδέες σας. Εγώ σκέφτηκα να παίρνω την κάθε εγγραφή, ( βάσει του Code Dis), και να γεμίζω τον πίνακα Discount, τόσες εγγραφές, (ΟΛΑ τα πεδία), όσες έχει το νούμερο στο πεδίο Days μέχρι να τελειώσει, να μαρκάρει το πεδίο ( Active σε 0), και μετά να πηγαίνει στην επόμενη εγγραφή. Βέβαια το συγκεκριμένο, είναι μακράν των δυνατοτήτων μου, και μετά από 2 μέρες διάβασμα στο φόρουμ βρήκα κώδικα που γεμίζει εγγραφές τον πίνακα βάσει όμως μια φόρμας, και ΔΕΝ κατάφερα να τον προσαρτήσω στην δικιά μου βάση.

Στο Zip αρχείο που στέλνω έχω μέσα την Access και το Excel, για να μπορείτε να τρέξετε όλη την διαδικασία.
Έχω ένα κουμπί διαταγής στην φόρμα που βάσει αυτού θα γίνονται όλα, δηλαδή θέλω με Vba να εκτελούνται όλα, επειδή θα φτιάξω πολλές διαδικασίες, και δεν θέλω να γεμίσω ερωτήματα και κουμπιά. Στην συνάρτηση αυτή μέσα, κάθε εργασία που κάνω, γράφω σχόλια, για να μπορείτε να καταλάβετε το σκεπτικό μου, αλλά να θυμάμαι και εγώ τι έκανα.
Συγχωρέστε μου την πολυλογία, αλλά ήθελα να είμαι όσο το γίνετε ποιο αναλυτικός σε αυτό που θέλω.

Σας ευχαριστώ εκ το προτέρων.
Φιλικά Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Discount.mdb (320,0 KB, 19 εμφανίσεις)
Τύπος Αρχείου: xls Discount.xls (178,0 KB, 12 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη Αναστάσιος : 28-01-17 στις 12:58. Αιτία: Ξέχασα να βάλω τα αρχεία.
  #2  
Παλιά 29-01-17, 22:32
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Δεν ξέρω αν κατάλαβα καλά το ζητούμενο.

Αφού βάλουμε το αρχείο του Excel και της Access στον ίδιο φάκελο, ανοίγουμε το αρχείο *.mdb

Αν πατήσουμε το κουμπί της φόρμας, αφού συμπληρώσουμε την ημερομηνία:

1) Θα εισαχθούν όλα τα δεδομένα από το Excel στον πίνακα Discount της Access.

Κατά την εισαγωγή τους κάθε εγγραφή θα πάρει στο πεδίο Auto ένα μοναδικό αριθμό (ταυτότητα).

2) Θα δημιουργηθεί, ανάλογα με το μήνα (διάρκεια 28, 29,30 ή 31 ημέρες) , η κατάλληλη δομή του πίνακα προσφορών Offers.

Το πλήθος των εγγραφών του πίνακα ισούται με το πλήθος των εγγραφών του Discount.

Κάθε πεδίο f1, f2, …(f28 (f29 f30, f31) αντιστοιχεί σε μία ημερομηνία.

Αν για μια συγκεκριμένη εγγραφή η ημερομηνία είναι ανάμεσα στις Begin και End το πεδίο παίρνει τιμή 1, διαφορετικά 0.

3) Το πεδίο Auto του πίνακα μπορεί να συνδεθεί με το ομώνυμο του πίνακα Discount.

Μια τέτοια σύνδεση έγινε στο ερώτημα Report, που μοιάζει με το παράδειγμα του Excel.

Σημειώνεται ότι ο κώδικας προσαρμόζει και το ερώτημα στη διάρκεια του μήνα.

Προσθήκη
Τώρα διαπίστωσα ότι για το δεύτερο φύλλο προσθέτει κενές εγγραφές.
Θέλει ψάξιμο

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

Τελευταία επεξεργασία από το χρήστη kapetang : 30-01-17 στις 08:31. Αιτία: Προσθήκη
  #3  
Παλιά 30-01-17, 09:05
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή Πολλαπλές εγγραφές στον ίδιο πίνακα βάσει Κριτηρίων

Καλημέρα, και σε ευχαριστώ Γιώργο για την άμεση απάντηση σου.

Είσαι δύναμη, εσύ το πήγες ενα βήμα παρακάτω, , αλλά Δεν ήθελα αυτό ακριβώς, αν και η δουλειά που έκανες ήταν εξαιρετική, και θα χρειαστώ αυτά που έφτιαξες για κάποια άλλα πράγματα που θέλω. ΔΕΝ πήγε χαμένος ο χρόνος σου.
Αυτό που θέλω όμως, θεωρώ, βάσει αυτά που μου έφτιαξε, κάτι ποιο απλό.
Οταν μου κάνεις αντιγραφή τις εγγραφές από το Excel, στον πίνακα Discount, να μεταφέρεται η ΚΑΘΕ εγγραφή τόσες φορές όσε είναι το νούμερο στο πεδίο [Days] του Excel.
Δηλαδή, η παρακάτω εγγραφή,
"Maz ΧΑΛΚΙΑΔΑΚΗΣ Α.Ε. ΧΑΛΚΙΑΔΑΚΗΣ Α.Ε. Ν2 0 Aa1 Bb1 Cc1 1 0 0 0 1D658611 1/3/2017 26/4/2017 27/4/2017 42795-42851 57 269,17 € 1 1"
έχει στο πειδίο Days στο Ecxel στο φύλλο "Import maz", τον αριθμό 57, θα μεταφερθεί λοιπόν στην access 57 φορές, με όλα τα στοιχεία ίδια, εκτός το [Begin] που θα προστίθεται κατά ένα, την κάθε φορά που το κάνεις εισαγωγή, ξεκινώντας από την τιμή που έχει.
Δηλαδή, η εγγραφή με τον αριθμό 1 στο πεδίο [Code Dis] του Excel, θα μεταφερθεί 57 φορές στην access, και στο Begin θα πάρει την τιμή,
1/3/2017, η επόμενη εγγραφή θα γίνει, 2/3/2017, μετά 3/3/2017, κτλ, μέχρι συμπληρωθούν οι 57 εγγραφές και θα καταλήξει το Begin να έχει την τιμή 27/04/2017, και μετά στο πεδίο [Active] στην access θα βάζει μηδέν, ή θα σβήνει ΟΛΗ την αρχική εγγραφή, (ότι σε βολεύει, μπορώ να τα σβήνω και με ερώτημα αν μου βάζεις 0), και θα προχωράει στην επόμενη εγγραφή, στο νούμερο 2 του [Code Dis]. Ολα αυτά θα τα κάνει αυτόματα, ανάλογα πόσες εγγραφές έχει το Excel, χωρίς να χρειάζεται να βάζεις ημερομηνία ή κάποιο άλλο κριτήριο.

Αν μου κάνεις εσύ αυτό που ζητάω, το ερώτημα θα το ΚΑΝΩ εγώ, δεν χρειάζεται να σπαταλάς το χρόνο σου.
Θεωρώ ότι αν μου φέρνεις τις εγγρφές όπως σου λέω, θα εξαλείψουμε και το πρόβλημα των κενών εγγραφών, ΑΛΛΑ και αν υπάρχουν, θα τις αφαιρώ με ερώτημα.

Ευχαριστώ.

Τελευταία επεξεργασία από το χρήστη Αναστάσιος : 30-01-17 στις 10:21. Αιτία: Διαγραφή
  #4  
Παλιά 30-01-17, 11:12
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

1) Μεταφέρονται και κενά, που με μπέρδεψαν, επειδή κάτω από τα πραγματικά δεδομένα πιθανόν να υπάρχουν και άλλα μη ορατά.

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

2) Από το Excel τα δεδομένα μεταφέρονται μαζικά και όχι εγγραφή-εγγραφή.

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

4) Κάποια πεδία είναι περιττά και θα μπορούσαν να μη μεταφερθούν.

Το πεδίο [Real End] είναι περιττό. Επίσης ο αριθμός των επαναλήψεων, για κάθε εγγραφή είναι γνωστός και ισούται με:=[End]-[Begin]+1.

5) Κάθε εγγραφή μπορεί να χαρακτηρίζεται από ένα σύνθετο κλειδί: ([Kategory], [Code Dis], συνεπώς δε χρειάζεται άλλο κλειδί (Autonumber).

6) Σκέψου τα παραπάνω και ανέβασε ένα δείγμα με τη δομή των πινάκων Discount και DiscountPlus, όπως και σχετικές διευκρινήσεις.

Διευκρινίσεις κυρίως για το ρόλο του πεδίου [Active] και της εγγραφής που θα διαγράφεται.
  #5  
Παλιά 30-01-17, 11:26
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή Πολλαπλές εγγραφές στον ίδιο πίνακα βάσει Κριτηρίων

Το κοιτάζω και θα στείλω σε λίγο τις διευκρινήσεις.

Ευχαριστώ.
  #6  
Παλιά 30-01-17, 13:40
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από kapetang Εμφάνιση μηνυμάτων
1) Μεταφέρονται και κενά, που με μπέρδεψαν, επειδή κάτω από τα πραγματικά δεδομένα πιθανόν να υπάρχουν και άλλα μη ορατά.

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

1) Απάντηση: Αν έχεις καμία ιδέα, να μπορούμε με κώδικα να μπαίνει στο αρχείο του Excel και να σβήνει τις εγγραφές, καλώς, αλλιώς άφησε τις να μεταφέρονται, και θα τις σβήνω με ερώτημα διαγραφής, και ανάλογη προσάρτηση στην Ρουτίνα. ΔΕΝ μπορώ να σβήνω τις κενές εγγραφές στο αρχείο που θα στέλνει η εταιρεία, γιατί θα έχει πάνω από 20-40 καρτέλες, οπότε θα είναι εξαιρετικά χρονοβόρο.

2) Από το Excel τα δεδομένα μεταφέρονται μαζικά και όχι εγγραφή-εγγραφή.

2) Απάντηση: Οκ. Κανένα πρόβλημα.

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

3) Απάντηση: Συμφωνώ, και ετοίμασα την βάση όπως προτείνεις.

4) Κάποια πεδία είναι περιττά και θα μπορούσαν να μη μεταφερθούν.

Το πεδίο [Real End] είναι περιττό. Επίσης ο αριθμός των επαναλήψεων, για κάθε εγγραφή είναι γνωστός και ισούται με:=[End]-[Begin]+1.

4) Απάντηση: Δυστυχώς ή ευτυχώς, ( δεν το ξέρω ακόμα αυτό), πρέπει όλα τα πεδία να έρχονται, γιατί χρειάζεται το καθένα από αυτά για περαιτέρω ανάλυση. Πχ το πεδίο [Real End] που αναφέρεις, χρειάζεται γιατί αυτό θα είναι χρονικό διάστημα που θα οριστεί για τον κάθε όμιλο, για πόσο πραγματικά θα ισχύει η προσφορά. Μπορεί δηλαδή μια προσφορά να ισχύει για ένα μήνα, αλλά λόγω εξαντλήσεως των αποθεμάτων, να σταματήσω την προσφορά εγώ προς αυτόν, αλλά αυτός να συνεχίσει να έχει την προσφορά στα καταστήματα του, γιατί δεν μπορεί να τυπώνει φυλλάδια κάθε τόσο. Υπάρχουν και άλλοι λόγοι, αλλά δεν είναι του παρόντος.

5) Κάθε εγγραφή μπορεί να χαρακτηρίζεται από ένα σύνθετο κλειδί: ([Kategory], [Code Dis], συνεπώς δε χρειάζεται άλλο κλειδί (Autonumber).

5) Απάντηση: Σωστά. Ετοίμασα τους πίνακες με μοναδικό κλειδί [Unique Code], και θα ενημερώνετε βάσει των πεδίων [Discount Number] and [ Code Dis]. Δεν με ενδιαφέρει αν θα είναι κολλητά, ή με κενό ανάμεσα τους.


6) Σκέψου τα παραπάνω και ανέβασε ένα δείγμα με τη δομή των πινάκων Discount και DiscountPlus, όπως και σχετικές διευκρινήσεις.

6) Απάντηση: Την διαμόρφωσα όπως μου υπόδειξε, (πίνακες και κλειδί).

Διευκρινίσεις κυρίως για το ρόλο του πεδίου [Active] και της εγγραφής που θα διαγράφεται.
Διευκρινίσεις ) Απάντηση: Αφού πήγαμε στην λύση άλλου πίνακα, ΔΕΝ χρειάζεται να διαγράφετε το τίποτα.
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Discount.xls (178,0 KB, 4 εμφανίσεις)
Τύπος Αρχείου: mdb Discount3.mdb (388,0 KB, 5 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη Αναστάσιος : 30-01-17 στις 13:42. Αιτία: Ξέχασα να ανεβάσω τα αρχεία....
  #7  
Παλιά 30-01-17, 16:28
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Δοκίμασε το συνημμένο.

1) Στον πίνακα Discount δε χρειάζονται πρόσθετα πεδία για τη δημιουργία του σύνθετου κλειδιού.

Δες στη σχεδίαση το κλειδάκι δίπλα από τα πεδία [Category] και [Code Dis].

2) Επειδή παίρνει στοιχεία κατευθείαν από το Excel, όπου δεν υπάρχει πεδίο Etos (το year είναι δεσμευμένη λέξη και πρέπει να αποφεύγεται), το αφαίρεσα.

3) Το πεδίο Etos υπάρχει στον πίνακα DiscountPlus. Υπολογίζεται από το πεδίο Begin με τη συνάρτηση Year(Begin).

Κάνε δοκιμές, μήπως κάτι μου διέφυγε.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Discount4.zip (321,5 KB, 11 εμφανίσεις)
  #8  
Παλιά 30-01-17, 21:33
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή Πολλαπλές εγγραφές στον ίδιο πίνακα βάσει Κριτηρίων

Άψογος!!!!!! ......για ακόμα μια φορά....
όπως ακριβώς το ήθελα....

Τελευταία επεξεργασία από το χρήστη Αναστάσιος : 31-01-17 στις 11:23.
  #9  
Παλιά 31-01-17, 11:38
Όνομα: Αναστάσιος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-12-2016
Περιοχή: Ρέθυμνο
Μηνύματα: 43
Προεπιλογή

Καλημέρα,

Γιώργο το excel, και συγνώμη που μου διέφυγε, θα έχει πάρα πολλά φύλλα, ΔΕΝ ξέρω τον αριθμό. θα έχει όμως την ίδια δομή όπως και τα προηγούμενα.
'Όπως και το γεγονός ότι θα βάλω και άλλους πίνακες στην βάση, και θα ήθελα να πηγαίνουν όλοι στο DiscountPlus. Έφτιαξα εγώ ένα δοκιμαστικό και δουλεύει μια χαρά, αλλά ΑΝ δεν σου κάνει κόπο, δες αν είναι ο σωστός ο τρόπος που το έφτιαξα, και δεν "σκάσει" αργότερα.

Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Discount.xls (178,0 KB, 7 εμφανίσεις)
Τύπος Αρχείου: mdb Discount5.mdb (400,0 KB, 6 εμφανίσεις)
  #10  
Παλιά 31-01-17, 16:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

1) Αναστάσιε, ο κώδικας στο δοκιμαστικό που ανέβασες είναι ίδιος μ’ αυτόν που σου πρότεινα, με κάποιες διαφορές στα μηνύματα που εμφανίζει στο χρήστη.

Επίσης πρόσθεσες «χύμα» (έξω από κάποια Function ή Sub) το παρακάτω κομμάτι άσχετου κώδικα:
Κώδικας:
'Καταχώρηση δεδομένων
    Set rs = CurrentDb.OpenRecordset("tblExoda")
    dt = CDate(Me.DAYEX)
    For i = 0 To Me.SYNDOSEON - 1
        rs.AddNew
        rs!DAYEX = DateAdd("m", i, dt)
        rs!POSOEX = Me.POSOEX
        rs!KATIGORIAEX = Me.KATIGORIAEX
        rs!KATASTASIEX = Me.KATASTASIEX
        rs!ARXEXODA = Me.ARXEXODA
        rs!SYNDOSEON = Me.SYNDOSEON
        rs!PERIODOS = Me.PERIODOS
        rs!TREXDOSI = Me.TREXDOSI + i
        rs!Prokatavoli = Me.Prokatavoli
        rs!PERIGRAFIEX = Me.PERIGRAFIEX
        rs.Update
    Next
Συμπέρασμα ο κώδικας αυτός κάνει ότι ακριβώς έκανε και ο προηγούμενος.

Μεταφέρει από το Excel μόνο 2 φύλλα, ενώ, όπως κατάλαβα, θέλεις να μεταφέρονται περισσότερα.

2) Μολονότι λες ότι το αρχείο Excel θα έχει πάνω από 2 φύλλα με ίδια δομή, αυτό που ανεβάζεις έχει μόνο δύο, αλλά το κυριότερο δεν ενημερώνεις αν θα υπάρξουν φύλλα με την ίδια τιμή στη στήλη Category.

3) Γράφεις ότι η βάση θα έχει και άλλους πίνακες που θα ήθελες να προστεθούν στον DiscountPlus.

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

Έτσι ο εν συνεχεία κώδικας θα τους συμπεριλάβει στον DiscountPlus.
Κλειστό Θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Πίνακες ] Μαζικη αντιγραφή εγγραφών στον ίδιο πίνακα dimitrisp Access - Ερωτήσεις / Απαντήσεις 8 28-10-16 20:45
[ Πίνακες ] Πολλαπλή αντιγραφή μιάς εγγραφής στον ίδιο πίνακα dimitrisp Access - Ερωτήσεις / Απαντήσεις 14 05-10-16 22:38
Μερικά άθροισμα στον ίδιο πίνακα και ερωτημα pansyr Access - Ερωτήσεις / Απαντήσεις 11 06-10-15 18:34
[ Πίνακες ] Ενωση 2 πεδίων στον ίδιο πίνακα kantidenos Access - Ερωτήσεις / Απαντήσεις 1 01-10-13 03:28
Αποτελέσματα σε φόρμα, βάσει κριτηρίων... dimogerontas Access - Ερωτήσεις / Απαντήσεις 6 05-07-12 10:08


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