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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 21-10-10, 22:01
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.250
Προεπιλογή

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

Επιτρέψτε μου κάποιες παρατηρήσεις όχι προς τους κώδικες αλλά το πρακτικό αποτέλεσμα τους.

Δεν γίνονται οι κοπές με Laser αλλά με δίσκους, σέγες, κορδέλες κτλ. που έχουν κάποιο πάχος πχ. 3 ή 4 χιλιοστά.
Σύμφωνα με τους κώδικες που παρουσιάστηκαν μια ράβδος 5 μέτρων μας δίνει 5 κομμάτια του ενός μέτρου. Στην πράξη όμως, μας δίνει 4 κομμάτια γιατί από το πέμπτο λείπουν 4 x 3χιλιοστά του δίσκου (4 κοπές για τα 5 κομμάτια).


Φανταστείτε ότι πρέπει να κόψετε κομμάτια αλουμινίου 50 διαφορετικών διαστάσεων που δεν έχουν συνήθως το ίδιο πλήθος.

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

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

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

Αν θέλετε τη γνώμη μου, βγάλτε το πρώτα σε Excel όπου η επίλυση του προβλήματος θα είναι απλότερη, και στη συνέχεια το μετατρέπετε σε VB (αυτό θα έκανα εγώ αν είχα το χρόνο).

Σας εύχομαι καλή συνέχεια!

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 21-10-10 στις 22:33.
Απάντηση με παράθεση
  #12  
Παλιά 21-10-10, 22:31
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 105
Προεπιλογή

τασο εισαι οπως παντα μεσα στο θεμα.το θεμα με την "φυρα"του δισκου λυνεται ευκολα με ενα ερωτημα που στον πινακα των κοματιων που θα πρεπει να κοπουν θα προσθετει σε καθε κοματι 3mm που πιανει ο δισκος και θα εχουμε σωστο τελικο αποτελεσμα. αν υπαρχει περιπτωση να γινεται εστω και με 20 σελιδες κωδικα καλυτερα να μεινουμε στην access που με τις ελαχιστες γνωσεις που εχω και την βοηθεια των παιδιων του forum πιο νωρις θα το κανουμε.για να καταλαβεις ποσο ασχετος ειμαι στο excel ουτε να το γραφω δεν ξερω.δεν το εχω ανοιξει ποτε μου. γι'αυτο αν μπορουμε ας μεινουμε στην access για να καταλαβαινουμε (εστο και λιγο) τι κανουμε.
τωρα,για οσους θελουν να βοηθησουν και δεν κατανοουν καποια "τεχνικα" πραγματα (δεν κανουμε ολοι κουφωματα) οτι χρειαζεστε μπορω να σας το περηγραψω με καθε λεπτομερια.
συγνωμη για τα ορθογραφικα εχω ξεχασει να γραφω με τους υπολογιστες,αλλα μην φοβαστε θα βελτιωθω γιατι φετος η κορη μου ειναι στην 1η ΔΗΜΟΤΙΚΟΥ
Απάντηση με παράθεση
  #13  
Παλιά 21-10-10, 22:46
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.250
Προεπιλογή

Σάκη, δεν είναι τόσο απλό γιατί το τελευταίο κομμάτι από τη ράβδο ίσως να είναι στην πραγματικότητα (αν το μετρήσεις με το μέτρο) ακριβώς στο μήκος που χρειάζεσαι (άρα δεν χρειάζεται κι άλλη κοπή) ενώ συμφωνα με το ερώτημα σου θα φανεί ότι δε "χωράει" (+ 3mm) και θα σου δημιουργήσει ρετάλι!
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #14  
Παλιά 21-10-10, 23:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

Καλησπέρα

Φίλε Τάσο δεν μπόρεσα να σκεφτώ έναν αποδεκτό αλγόριθμο για τον προσδιορισμό της βέλτιστης κοπής, γι’ αυτό και δεν έγραψα κώδικα.
Το αρχείο που ανέβασα περιέχει τον κώδικα του Γιάννη. Το ανέβασα για να βοηθήσω το Σάκη να κάνει δοκιμές.
Επειδή ήταν λίγα τα κομμάτια βρήκα (χειρονακτικά) μια άλλη λύση καλύτερη από τη λύση που παίρνουμε από τον κώδικα.
Το επισήμανα μήπως ο Γιάννης θα μπορούσε να το λάβει υπόψη του σε μια μελλοντική βελτίωση του κώδικα.
Τις απώλειες κοπής τις σκέφτηκα, αλλά δεν τις θεώρησα μεγάλο πρόβλημα, αφού μπορούμε να αυξήσουμε το μήκος κάθε κομματιού με το πάχος του κοπτικού μέσου και να το λύσουμε. Στον κώδικα το τελευταίο είναι γνωστό και δε θα προσαυξάνεται.
Σάκη νομίζω ότι μπερδεύτηκες. Εγώ δεν έγραψα κώδικα. Ο κώδικας είναι του Γιάννη.
Καλό βράδυ

Φιλικά/Γιώργος

Τελευταία επεξεργασία από το χρήστη kapetang : 21-10-10 στις 23:12. Αιτία: μικροπροσθήκη
Απάντηση με παράθεση
  #15  
Παλιά 21-10-10, 23:14
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 105
Προεπιλογή

τασο αυτο μπορω να το βρω δουλευοντας το προγραμμα.κοβω εδω και 25 χρονια και νομιζω οτι σ'αυτο το θεμα θα την βρω την ακρη. στατιστικα μπορει μετα απο 1μηνα π.χ. το 3mm να το κανω 4 η 2,5 , δεν ειναι τοσο δεσμευτικο αυτο.εξαλου η βελτιστοποιηση θα μου χρειαστει στο 5% περιπου του συνολου της δουλειας μου που αφορα κουφωματα σε χρωματα που δεν τα εχω στοκατισμενα.δηλαδη σε λευκο ,καφε ,και τα δυο βασικα χρωματα ξυλου παντα εχω στοκ και δεν με πειραζει αν η βελτιστοποιηση αποτυχει σε μια βεργα.ετσι κι αλλιως παντα παραγγελνω μια βεργα παραπανω απο καθε προφιλ γιατι παντα μπορει κατι να τυχει.πχ.χτυπημενη βεργα ,σου επεσε το κοματι και σταρβωσε , το τρυπισε ο βοηθος λαθος κτλ. και σε πληροφορο οτι μπορει για να τελειωσεις μια δουλεια να σου λειπει ενα κοματι και για να το παραλαβεις σε χωμα ξυλου απο το βαφειο να θες 35 μερες.δηλδη δεν το διακυνδινευεις
Απάντηση με παράθεση
  #16  
Παλιά 22-10-10, 00:14
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 186
Προεπιλογή

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

Βλέπω πως η προσπάθειά μου άναψε φωτιές και πολύ χαίρομαι για αυτό!

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

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

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

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

Αν τελικά τα καταφέρουμε Σάκη, ετοιμάσου για δωρεάν σίτες σε όλους τους συμμετέχοντες!

Ελπίζω να επανέλθω σύντομα και με χειροπιαστά στοιχεία.

Τα λέμε!
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #17  
Παλιά 23-10-10, 15:49
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 105
Προεπιλογή ευχαριστω ολους για το ενδιαφερων που διχνουν

τα προγραμματα που εχω και κανουν βαλτιστοποιηση δουλευουν απο οτι εχω καταλαβει ως εξης:στον πινακα με τα προφιλ εχουν και ενα πεδιο "μηκος βεργας", και στις ρυθμησεις εχουν ενα πεδιο "φυρα κοπης δισκου" και παιρνουν αυτα τα στοιχεια. επισης καποια προγραμματα δινουν περισοτερες επιλογες ως αποτελεσμα δηλαδη βγαζουν περισοτερες απο μια λυσεις και διαλεγεις εσυ πια σου αρεσει.παρουσιαζουν αρχικα μια φορμα σε μορφη φυλλου δεδομενων και εκει εχει τις διαφορες λυσεις.εκει βλεπεις ποσες βεργες σου χρειαζονται και το μεγαλυτερο ρεταλι που θα μεινει αν κοψεις με αυτη την λυση. πχ.μπορει να χρειαζεσαι 4 βεργες και να σου μενει ρεταλι 40cm που δυσκολα θα χρειαστει μελλοντικα, και με αλλη λυση να θες 5 βεργες αλλα να σου μενουν ρεταλια χρησιμα. θα βολευε αν εστελνα εικονες απο καποιες φορμες η εκθεσεις απο τα προγραμματα που εχω αγορασμενα?????
Απάντηση με παράθεση
  #18  
Παλιά 25-10-10, 09:49
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.737
Προεπιλογή

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

Η βάση δεδομένων που επισυνάπτεται αποτελεί μια προσπάθεια επίλυσης του ζόρικου προβλήματος βελτιστοποίησης της κοπής, που έθεσε ο Σάκης.
Α. Λίγη θεωρία
Το πρόβλημα διατυπώνεται ως εξής: Θέλουμε να κόψουμε N κομμάτια. Να προσδιοριστούν τα κομμάτια που θα κοπούν από μία ράβδο μήκους L, ώστε το ρετάλι να είναι ελάχιστο.
Θεωρητικά από τη ράβδο μπορούμε να κόψουμε 1, 2,...N τεμάχια. Δηλαδή θα πρέπει να σχηματίσουμε όλους τους συνδυασμούς των N ανά 1, 2, ..., Ν και να επιλέξουμε εκείνον που εκμεταλλεύεται καλύτερα τη ράβδο. Η αντιμετώπιση αυτή είναι πολύ χρονοβόρα.
Για τη βελτίωση της ταχύτητας τα τεμάχια ταξινομούνται κατά αύξουσα σειρά ως προς το μήκος τους. Αυτό βοηθάει στον εύκολο αποκλεισμό των αδύνατων συνδυασμών (αυτών που δε χωρούν στη ράβδο).
Στον κώδικα έχουν υλοποιηθεί οι συνδυασμοί μέχρι 15 τεμαχίων.
Στις εφαρμογές βελτιστοποίησης η αύξηση του Ν αυξάνει απότομα το χρόνο υπολογισμού . Σε δοκιμές που έκανα αν το πλήθος των τεμαχίων υπερβεί το 30 μπορεί (ανάλογα και με το PC) να υπάρξουν προβλήματα (να φαίνεται σαν να κόλλησε το PC).

Β. Συνοπτικά η εφαρμογή
Έχει τη δυνατότητα οι ράβδοι από τις οποίες θα γίνει η κοπή να έχουν διαφορετικά μήκη.
Όλη η δουλειά γίνεται στη φόρμα frmTemahiaProsKopi. Εδώ καταχωρούνται τα μήκη των τεμαχίων που θα κοπούν, επιλέγεται το μήκος της πρώτη ράβδου, το πάχος της απώλειας κοπής και αν θα χρησιμοποιήσουμε ράβδους σταθερού μήκους. Στη συνέχεια πατώντας το κουμπί «βελτιστοποίηση κοπής» γίνεται ο υπολογισμός και τα αποτελέσματα αποθηκεύονται στον πίνακα tblBestKopis και εμφανίζονται στη φόρμα frmKopis.

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

Φιλικά/Γιώργος
Υ.Γ Πρώτη φορά χρησιμοποίησα την access 2007. Με εκνεύρισε. Ελπίζω να μη υπάρχει και πρόβλημα με το κόμμα στους αριθμούς.
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb BestCutting3.mdb (444,0 KB, 90 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 31-10-10 στις 18:02. Αιτία: άλλαγή στον κώδικα: από C(10) σε C(I10)
Απάντηση με παράθεση
  #19  
Παλιά 25-10-10, 11:51
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 186
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από kapetang Εμφάνιση μηνυμάτων
Υ.Γ Πρώτη φορά χρησιμοποίησα την access 2007. Με εκνεύρισε. Ελπίζω να μη υπάρχει και προβλήματα με το κόμμα στους αριθμούς.
Μην ανησυχείς Γιώργο! Είναι φυσιολογική αντίδραση της πρώτης επαφής με το ribbon (κορδέλα).
Όταν αρχίσεις να συνηθίζεις το νέο περιβάλλον θα δεις πόσο παραγωγικό είναι.
Άσε που θα καλομάθεις με τα νέα εργαλεία. Όπως για παράδειγμα το Anchoring (καρτέλα Arrange).

Μόλις βρω χρόνο θα εξετάσω και την ...υπερπαραγωγή σου και θα επιστρέψω με σχόλια.
Με μια πρώτη και γρήγορη ματιά, τα αποτελέσματα φαίνονται σωστά και αν και είμαι σε PC με Celeron 2.4GHz,
δεν βλέπω να υπάρχει θέμα με τον χρόνο υπολογισμού.


Από μένα τουλάχιστον για την ώρα, έχεις ένα μεγάλο μπράβο που παρέχεις την ευφυΐα σου σε αυτό το ζόρικο πρόβλημα.

Τα λέμε λοιπόν!
Γιάννης
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!
Απάντηση με παράθεση
  #20  
Παλιά 25-10-10, 18:56
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 105
Προεπιλογή

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


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Έλεγχος αν η εκτέλεση ερωτήματος επιστρέφει κάτι. sarrpan Access - Ερωτήσεις / Απαντήσεις 6 14-02-14 07:37
[ Ερωτήματα ] όπου is null μπορεί να γίνει τρέχουσα ημερομηνία mousatos Access - Ερωτήσεις / Απαντήσεις 2 08-09-13 21:21
[Excel07] Πως μπορεί να αντιγραφούν μόνο τα μερικά αθροίσματα σε άλλο φύλλο GEORGE1 Excel - Ερωτήσεις / Απαντήσεις 2 18-01-13 15:12
Στοιχείο ελέγχου. Πως θα γινει;; viki_moulara Access - Ερωτήσεις / Απαντήσεις 1 12-12-10 16:17
Κάτι για αλλαγή !!!!!! manolis Off topic - Εκτός θέματος 1 22-07-10 15:43


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