Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Ερωτήματα ] Ερώτημα για concatenate τιμών (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3205-erotima-gia-concatenate-timon.html)

kapetang 21-06-14 21:49

Καλησπέρα

Δημήτρη, αφού κοίταξα τα σχετικά αρχεία θα πρότεινα:

1) Το ερώτημα 00_01_qryItemsForEANS να διαμορφωθεί ως εξής:
Κώδικας:

SELECT Val(Left([Item Nr],7)) AS ArtikelNr, Val(Right([Item Nr],4)) AS KolliInhalt, ITEMS.[Item Nr], ITEMS.DescrGR, ITEMS.listdescr
FROM ITEMS
WHERE (((ITEMS.listdescr) Not Like "Ausgelistet EM*"));

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

2) Τα ερωτήματα 00_02_qryEANSForItems και 00_03_qryEANS δε χρειάζονται.

3) το ερώτημα 00_04_qryEANS να αλλάξει στο:

Κώδικας:

SELECT DISTINCT [00_01_qryItemsForEANS].ArtikelNr, EANS.EANCODE, EANS.EANCODEBESCHR
FROM EANS INNER JOIN 00_01_qryItemsForEANS ON EANS.ARTIKELNR = [00_01_qryItemsForEANS].[Item Nr]
ORDER BY [00_01_qryItemsForEANS].ArtikelNr, EANS.EANCODE;

Με τα παραπάνω ελπίζω να βελτιωθεί η ταχύτητα εκτέλεσης του τελικού ερωτήματος.

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

Κάθε φορά που ενημερώνεται καταναλώνει χρόνο.

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

Θα μπορούσες να γράψεις σε κάποιο κελί «ότι γίνονται υπολογισμοί» και όταν ολοκληρωθούν να γράψεις ότι ολοκληρώθηκαν ή να το σβήσεις και να εμφανίσεις μήνυμα.

Ο χρόνος μπορεί να υπολογιστεί με τη συνάρτηση Timer, που δείχνει σε δευτερόλεπτα το χρόνο που πέρασε από την αρχή της μέρας ( πχ Dim x as Single -> x=Timer -> MsgBox " Ολοκληρώθηκε σε " & RounD(Timer-x, 2) & " δευτερόλεπτα").

Τα κολλήματα συμβαίνουν και σε μένα.

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

Ένας ακόμα λόγος για την κατάργηση της μπάρας.

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

kapetang 22-06-14 11:40

1 Συνημμένο(α)
Καλησπέρα Δημήτρη

1) Όπως διαπίστωσα το ύψος των κελιών του Excel δεν μπορεί να υπερβεί τα 409 Points.

Μπορούν να παρουσιαστούν περιπτώσεις που να μη φαίνονται όλα τα περιεχόμενα σε ένα κελί.

2) Ο περισσότερος χρόνος (και το κόλλημα) οφείλεται στη μορφοποίηση.

Αυτό φαίνεται στο αρχείο UpdateEANS2.xlsm, που περιέχεται στο φάκελο που δημιουργείται όταν αποσυμπιεστεί το συνημμένο αρχείο.

Η αποσυμπίεση πρέπει να γίνει στο φάκελο c:\.

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

jockey17 22-06-14 20:19

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

Πραγματικά μεγάλη βελτίωση στο χρόνο.
Θα το υιοθετήσω έτσι όπως ακριβώς το έχεις τροποποιήσει, εννοώ για να βλέπει και ο χρήστης ότι κάτι γίνεται, να βλέπει την ενημέρωση σχετικά με την ενέργεια που εκτελείται και εγκαταλείπω την σκέψη περί μπάρας προόδου.
Θα το δοκιμάσω αύριο και στη δουλειά με τα εκεί μηχανήματα και δεδομένου ότι όλα τρέχουν μέσω server για να δω εάν θα επιρεάσει καθόλου το χρόνο εκτέλεσης.
Τέλος αυτό που μένει να πειραματιστώ είναι εάν το τελικό αποτέλεσμα δηλαδή το φύλλο “UsedData” μπορεί να βρίσκεται σε ένα μόνο αρχείο στο οποίο θα πάνε να κοιτάνε όλα τα υπόλοιπα έντυπα που δημιουργούνται ή εάν το κάθε ένα από αυτά πρέπει να «κουβαλάει» τον κώδικα και να δημιουργεί / ανανεώνει εντός του αρχείου του.
Αυτό το λέω επειδή δοκίμασα να διαβάζω το φύλλο σαν εξωτερικά δεδομένα, αλλά διαπίστωσα ότι κόβει στους 255 χαρακτήρες και έτσι ανατρέπεται το σκεπτικό μου, ότι το τελικό αποτέλεσμα θα βρίσκεται σε ένα σημείο στο οποίο θα πάνε να «διαβάζουν» τα υπόλοιπα διάσπαρτα αρχεία.
Σε ευχαριστώ για το χρόνο σου και τη βοήθεια.
Τα λέμε.

Φιλικά
Δημήτρης

jockey17 23-06-14 18:38

Πληροφοριακά ο χρόνος που χρειάζεται είναι ο ίδιος ακόμα και μέσα από το δίκτυο.
Αυτό που σκέφτομαι είναι να τοποθετήσω αυτό το αρχείο σε κοινό φάκελο και σε κάθε έντυπο (μέσα στο πρώτυπο πάντα) που χρειάζεται αυτή την πληροφορία να δίνω τη δυνατότητα δημιουργίας ενός κλώνου (με open, copy, close) του φύλλου "UsedData". Το δοκίμασα και είναι μία ικανοποιητική εναλλακτική αντί της λήψης ως εξωτερικά δεδομένα.
Και πάλι σε ευχαριστώ για τη βοήθεια σου. Να είσαι καλά.

Φιλικά
Δημήτρης

kapetang 23-06-14 20:03

Δημήτρη να είσαι επίσης καλά.


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

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2