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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-10-10, 23:15
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 104
Προεπιλογή μπορεί να γίνει κατι τέτοιο με access

εχω αυτο το προγραματακι που μου κανει την δουλεια μου.το θεμα ειναι οτι εγω τις διαστασεις
τις βγαζω απο προγραμμα της access και μετα πρεπει να τις περασω σε αυτο το προγραμα
για να βγαλω ποσες βεργες πρεπει να εχω και πως πρεπει να τις κοψω.ξερει κανεις πως δουλευει
αυτο το προγραμα,και αν ειναι δυνατον να γινει κατι τετοιο με access και πως.αν μπορει καποιος
να με βοηθησει πολυ θα το εκτιμουσα.ευχαριστο σακης.
Απάντηση με παράθεση
  #2  
Παλιά 19-10-10, 01:44
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Σάκη καλημέρα!

Για να σε βοηθήσουμε, να πραγματοποιήσεις αυτό που επιθυμείς, θα πρέπει να ανεβάσεις ένα Access παράδειγμα.

Περιμένουμε να σε διαβάσουμε.

Φιλικά

Τάσος

ΥΓ.

Το συνημμένο σου διαγράφηκε γιατί το περιεχόμενο του δεν ταιριάζει στο χαραχτήρα του φόρουμ.
Στους
Κανόνες του Forum και στην ενότητα: "Πριν ζητήσετε / ρωτήσετε κάτι ακολουθήστε τους παρακάτω απλούς κανόνες" αναφέρεται το εξής:
....Οποιοδήποτε μήνυμα σχετικά με παράνομο λογισμικό ή μεθόδους εξουδετέρωσης της προστασίας λογισμικού ( ... ) καθώς και συνδέσμους (links) για ιστοσελίδες με τέτοιο περιεχόμενο....
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

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

εχω εναν πινακα με διαφορες διαστασεις ,που αντιστιχουν σε κοματια που πρεπει να κοπουν απο βεργες 6 μετρων. πως μπορει να κοπουν με την λιγοτερη φυρα.θελω δηλαδη μια ρουτινα πουνα τρεχει τις διαστασεις που θελω να κοψω και οταν βρησκει αυτες που"χωρανε"πιο καλα στην βεργα
να συνεχιζει με αλλα κοματια και την επομενη βεργα. ευχαριστο πολυ για την απαντηση.δεν μπορω να το στειλω σε access γιατι δεν το εχω κανει.εστειλα το προγραματακι αυτο για να καταλαβεται
τι θελω να κανω.
Απάντηση με παράθεση
  #4  
Παλιά 19-10-10, 19:11
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα
Αγαπητέ Σάκη, από τα γραφόμενά σου προκύπτει οτι θέλεις μια ολάκερη εφαρμογή ! Τα μέλη του Forum μπορούν να βοηθήσουν ώστε να επιλυθεί μια δυσκολία που συναντά κάποιος καθώς αναπτύσει μια εργασία.
Η ερώτησή σου είναι πολύ γενική, δεν νομίζω να πάρεις απάντηση από κάποιο μέλος. Η πρότασή μου είναι να έλθεις σε επικοινωνία με την ομάδα που διαχειρίζεται το ms-office.gr και να κάνεις μια συζήτηση μαζί τους.
Ελπίζω να βοήθησα / Νίκος Δ.
Απάντηση με παράθεση
  #5  
Παλιά 20-10-10, 02:03
Το avatar του χρήστη nisgia
Super Moderator
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 12-10-2009
Περιοχή: Ηγουμενίτσα
Μηνύματα: 161
Προεπιλογή

Καλησπέρα Σάκη!

Αν το ερώτημά σου είναι: "Γίνεται βελτιστοποίηση κοπής στην Access;"
Η απάντηση είναι: Ναι, γίνεται!

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

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

Για να δουλέψει θα πρέπει να της δώσεις τα εξής στοιχεία:
  • Το τυποποιημένο μήκος της ράβδου σε μέτρα (όρισμα sngBarLenght).
  • Έναν πίνακα με τα μήκη των κομματιών που πρόκειται να κοπούν σε φθίνουσα σειρά (όρισμα asngPiecesLength()).
Εκείνη θα σου επιστρέψει:
  • Τον αριθμό των απαιτούμενων ράβδων (επιστρεφόμενη τιμή).
  • Έναν πίνακα με τα μήκη των κομματιών ομαδοποιημένα στις αντίστοιχες ράβδους (όρισμα asngBarPieces())
  • και αν θέλεις και το αναμενόμενο υπόλοιπο (φύρα) της κοπής σε μέτρα (προαιρετικό και ..πλεονάζον όρισμα sngWaste)

Ο κώδικάς της φαίνεται παρακάτω ενώ η διαδικασία TestCutting είναι ένα παράδειγμα κλήσης της.
Η διαδικασία εκτυπώνει τα αποτελέσματα και στο παράθυρο Immediate οπότε μπορείς για την ώρα
να βλέπεις από εκεί τα αποτελέσματα κάνοντας δοκιμές αλλάζοντας τις τιμές και το πλήθος των ζητούμενων τιμών.

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

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

Function BestCuttingBars(ByVal sngBarLenght As Single, _
asngPiecesLength() As Single, asngBarPieces() As Single, _
Optional ByRef sngWaste As Single) As Integer

'***Cutting optimization***
'By nisgia for ms-office.gr
'19-Okt-2010

Dim sngTemp As Single
Dim sngPiece As Single
Dim sngSum As Single
Dim intPos As Integer
Dim intLB As Integer
Dim intUB As Integer
Dim intBars As Integer
Dim intWastePcs As Integer
Dim i As Integer

intUB = UBound(asngPiecesLength())
intLB = LBound(asngPiecesLength())
ReDim asngBarPieces(intLB To intUB, 0 To 2)

Debug.Print "---Best---8<---Cutting----"; Now
Debug.Print
Debug.Print "Table ------------------------------"
Debug.Print vbTab; vbTab; "Item"; " Bar "; "Length(m)"; " Waste(m)"
Debug.Print vbTab; vbTab; "------------------------------"

For intPos = intLB To intUB
sngTemp = Round(asngPiecesLength(intPos), 3)

If sngTemp > 0 And sngTemp <= sngBarLenght Then
sngSum = sngSum + sngTemp
intBars = intBars + 1
asngBarPieces(intPos, 0) = intBars
asngBarPieces(intPos, 1) = sngTemp

For i = intPos + 1 To intUB
sngPiece = Round(asngPiecesLength(i), 3)
If sngPiece > 0 Then
If sngPiece > Round(sngBarLenght - sngTemp, 3) Then
'
Else
asngBarPieces(i, 0) = intBars
asngBarPieces(i, 1) = sngPiece
sngTemp = sngTemp + sngPiece
sngSum = sngSum + sngPiece
asngPiecesLength(i) = 0
End If
End If
Next i
asngBarPieces(intPos, 2) = Round(sngBarLenght - sngTemp, 3)
If asngBarPieces(intPos, 2) > 0 Then intWastePcs = intWastePcs + 1
End If
Debug.Print vbTab; vbTab; intPos + 1; _
" | " & asngBarPieces(intPos, 0); _
" | " & asngBarPieces(intPos, 1); _
Space(5 - Len(CStr(asngBarPieces(intPos, 1)))); _
" | " & asngBarPieces(intPos, 2)
Next intPos

sngWaste = Round((sngBarLenght * intBars) - sngSum, 3)
BestCuttingBars = intBars

Debug.Print vbTab; vbTab; "------------------------------"
Debug.Print "Total: "; intUB + 1; " | " & intBars; _
" | " & sngSum; " | "; sngWaste & "(" & intWastePcs & " pcs)"
End Function

Sub TestCutting()
Dim asngPieces(5) As Single 'Ο πίνακας με τα κομμάτια προς κοπή
Dim asngBarPieces() As Single 'Ο πίνακας με τα κομμάτια αντιστοιχισμένα στις βέργες
Dim intBarsNeeded As Integer 'Οι ελάχιστες απαιτητές ράβδοι
Dim sngWaste As Single 'Η ελάχιστη υπολογιζόμενη φύρα

asngPieces(0) = 5 'Πρώτο κομμάτι: 5 μέτρα
asngPieces(1) = 4.55 '...
asngPieces(2) = 4.55 '...
asngPieces(3) = 2 '...
asngPieces(4) = 1.45 '...
asngPieces(5) = 1 '...

intBarsNeeded = BestCuttingBars(6, asngPieces(), asngBarPieces(), sngWaste)
'Τώρα ο πίνακας asngBarPieces περιέχει ομαδοποιημένα τα κομμάτια στις ράβδους
'η μεταβλητή intBarsNeeded έχει τον αριθμό των απαιτούμενων ράβδων
'ενώ η μεταβλητή sngWaste το υπόλοιπο (φύρα) της κοπής
End Sub
__________________
Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...!
-----------------------------------------------
Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης.
Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά!

Τελευταία επεξεργασία από το χρήστη nisgia : 20-10-10 στις 13:18. Αιτία: Διόρθωση δουλειών της νύχτας.
Απάντηση με παράθεση
  #6  
Παλιά 20-10-10, 16:40
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα
Κάνοντας μία δοκιμή στον κώδικα του Γιάννη προέκυψε το αποτέλεσμα
1. Λύση
Κώδικας:
Table   ------------------------------
        Item  Bar  Length(m) Waste(m)
        ------------------------------
         1  |  1 |   3,5   |   0,5
         2  |  2 |   2,55  |   0,9
         3  |  2 |   2,55  |   0
         4  |  1 |   2     |   0
         5  |  3 |   1,45  |   3,55
         6  |  3 |   1     |   0
        ------------------------------
Total:   6  |  3 |   13,05 |  4,95(3 pcs)
Εύκολα διαπίστωσα ότι η κοπή των ράβδων θα μπορούσε να γίνει σύμφωνα και με τον ακόλουθο πίνακα.
2.Λύση
Κώδικας:
Table   ------------------------------
        Item  Bar  Length(m) Waste(m)
        ------------------------------
         1  |  2 |   3,5   |   1,5
         2  |  1 |   2,55  |   0
         3  |  3 |   2,55  |   3,45
         4  |  1 |   2     |   0
         5  |  1 |   1,45  |   0
         6  |  2 |   1     |   0
        ------------------------------
Total:   6  |  3 |   13,05 |  4,95(3 pcs)
Στο ερώτημα ποια λύση είναι καλύτερη, αφού και οι δύο χρησιμοποιούν 3 ράβδους και δίνουν ίδια φύρα 3,95 μ, χωρίς να ξέρω τη γνώμη του Σάκη, θα απαντούσα η δεύτερη που συγκεντρώνει τη φύρα σε δύο κομμάτια, αν φυσικά δεν πετιέται η φύρα.
Έτσι πιστεύω ότι ο αλγόριθμος για την επίλυση του ενδιαφέροντος και δύσκολου προβλήματος που έθεσε ο Σάκης χρειάζεται βελτίωση.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #7  
Παλιά 20-10-10, 17:41
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 104
Προεπιλογή

ευχαριστω πολυ για τις απαντησεις σας.ειναι οντως αυτο που θελω να κανω.επειδη δεν γνωριζω και πολλα απο προγραμματισμο θα ηθελα αν μπορει καποιος να μου πει που θα βαλω των κωδικα στο συννημενο που θα στειλω.πρεπει να κανω καποιον πινακα η καποια φορμα;;;;;
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Αντίγραφο από -ΚΟΥΦΩΜΑ 2010 - 1-7-2010.zip (196,7 KB, 66 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 20-10-10, 17:59
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 104
Προεπιλογή

θελω να αναφερω οτι εφαρμογες του εμποριου εχω αγορασει ηδη το profil αποτην εταιρια themelio και εχω και το thyrae που το δινουν δωρεαν για τρεις μηνες τα εμπορικα των προφιλ.θεωρω ομως οτι το προγραμμα που εχω φτιαξει εγω στην access ειναι (για μενα)πολυ καλυτερο γιατι ειναι ανοιχτο και μπορω να προσθεσω λειτουργειες οποτε χρειαστει.κανω εκθεσεις οπως με βολευει,κανω προσφορες πολυ πιο ομορφες ,εχω βαλει εκτος απο το κουφωμα και ρολα , σιτες,τζαμια και γενικος οποτε χρειαστει το φτιαχνω οπως θελω(με την βοηθεια και των ανθρωπων του forum). μεχρι στιγμης δουλευω τα παντα απο το δικο μου προγραμμα και αναγκαζομε να ξαναγραφω τις διαστασεις στο thyrae η στο profil για να κανω βελτιστοποιηση.τωρα με την βοηθεια σας πιστευω οτι θα το φτιαξουμε και αυτο.
Απάντηση με παράθεση
  #9  
Παλιά 21-10-10, 20:48
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Σάκη επισυνάπτω το αρχείο. Άνοιξέ το στην access
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Best.mdb (124,0 KB, 98 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 21-10-10, 21:16
Όνομα: Σάκης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 04-12-2009
Μηνύματα: 104
Προεπιλογή

γιωργο ευχαριστο πολυ.ως προεπιλογη μου ειχε ανοιχτο το watch window και ως ασχετος με vb ειχα την εντυπωση οτι πρεπει να καλεσω τον κωδικα απο καποια φορμα.στο προηγουμενο μυνημα σου κανεις μια σωστη διαπιστοση για την φυρα.για να βγαλεις αυτα τα αποτελεσματα που θεωρω πιο σωστα απο αυτα του γιαννη εκανες καποια αλλαγη στον κωδικα?? (χωρις φυσικα να θελω να μειωσω τον γιαννη που αντιθετος τον ευχαριστο πολυ που ασχοληθηκε με το προβλημα μου). το μεγαλο μου ερωτημα ειναι πως θα κανω αυτον η εναν βελτιωμενο κωδικα να δουλεψει σε access???
Απάντηση με παράθεση
Απάντηση στο θέμα


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

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα 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


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