Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
ΟΡΙΣΜΟΣ ΣΥΓΚΕΚΡΙΜΕΝΩΝ ΠΕΔΙΩΝ ΣΕ ΕΚΘΕΣΗ
Καλημέρα σε όλους. Το πιο πολύτιμο Forum για το Office . Στην μικρή βάση δεδομένων της Access που ανεβάζω θέλω στην έκθεση ΠΑΡΑΓΓΕΛΙΕΣ2 που υπάρχει να εκτυπώνεται κάθε σελίδα με 14 πεδία (λεπτομέρεια) άσχετα εαν υπάρχουν αντίστοιχες εγγραφές. Οπως στην τελευταία σελίδα της έκθεσης στην προβολή εκτύπωσης. Ο σχεδιασμός της έκθεσης είναι πολύ λιτός για εξοικονόμηση όγκου . |
#2
| |||
| |||
Καλησπέρα Κώστα, Ανοίγοντας την έκθεση «ΠΑΡΑΓΓΕΛΙΕΣ 2» βγάζει προτροπή για αριθμό παραγγελίας όπως φαίνεται στην επισυναπτόμενη εικόνα. Από πού προέρχεται αυτό? Αν κατάλαβα καλά το ζητούμενο είναι να γεμίζει η έκθεση με 14 γραμμές ακόμα και δεν υπάρχου δεδομένα - εγγραφές. Σωστά? Ευχαριστώ. |
#3
| |||
| |||
Καλησπέρα Κώστα, Δες μια πρόταση από τον φίλο Τάσο Φιλοξενίδη. Ευχαριστώ. Τελευταία επεξεργασία από το χρήστη Tasos : 15-07-20 στις 01:34. |
#4
| |||
| |||
Ναι το θέμα μου είναι ακριβώς να γεμίζει η έκθεση με 14 γραμμές . Να τονίσω ότι λόγω όγκου δεν έχω στείλει την βάση δεδομένων όπως την έχω στυμμένη . Προσπάθησα να στείλω ενδεικτικά πολυ απλούστερη και μικρότερη βάση. Γιαυτό και θέλω στην ουσία κάποιο κώδικα για μορφοποίηση της έκθεσης ώστε να συμπληρώνει μόνη της 14 γραμμές. Στην πρόταση του Τάσου έχει προστεθεί πίνακας temp που στη δικιά μου βάση δεδομένων δεν θα βοηθήσει . Τελευταία διευκρίνιση , προσθέτω ήδη κενές εγγραφές στον πίνακα Τιμολόγια1 για να φτάνω τις απαραίτητες 14 γραμμές . Αυτό θέλω να αποφύγω. Περιμένω κάποια πρόταση ακόμη . Ευχαριστώ |
#5
| ||||
| ||||
Καλημέρα! Στο παράδειγμα υπάρχει ήδη κώδικας VBA που κάνει ακριβώς αυτή τη δουλειά δηλαδή προσθέτει τόσες κενές γραμμές στον πίνακα temp ώστε να είναι στο σύνολο 14 ανά σελίδα στην έκθεση. Κώδικας: Option Compare Database Option Explicit Private Const AllowedRecs = 14 Sub CreateReport() Dim ModX As Integer Dim i As Integer Dim RecCount As Long Dim CostPos As Long Dim db As DAO.Database Dim rsBase As DAO.Recordset Set db = CurrentDb db.Execute "DELETE * FROM temp" ', dbFailOnError ' Εδώ μπορούν να δοθούν περισσότερα κριτήρια πχ. ημερομηνία ' ώστε να εισαχθούν μόνο οι εγγραφές που πραγματικά πρέπει να εκτυπωθούν. db.Execute "INSERT INTO temp SELECT ΤΙΜΟΛΟΓΙΑ1.* FROM ΤΙΜΟΛΟΓΙΑ1" ' WHERE .... Set rsBase = db.OpenRecordset("SELECT DISTINCT ΤΙΜΟΛΟΓΙΑ1.[ΘΕΣΗ ΚΟΣΤΟΥΣ]FROM ΤΙΜΟΛΟΓΙΑ1") If rsBase.RecordCount Then While Not rsBase.EOF CostPos = rsBase![ΘΕΣΗ ΚΟΣΤΟΥΣ] RecCount = DCount("*", "temp", "[ΘΕΣΗ ΚΟΣΤΟΥΣ] = " & CostPos) ModX = AllowedRecs - (RecCount Mod AllowedRecs) If ModX <> AllowedRecs Then For i = 1 To ModX db.Execute "INSERT INTO temp ( [ΘΕΣΗ ΚΟΣΤΟΥΣ] ) Values (" & CostPos & ")" Next End If rsBase.MoveNext Wend End If rsBase.Close Set rsBase = Nothing Set db = Nothing End Sub Ίσως χρειαστεί να τροποποιηθεί ο κώδικας ώστε να φορτώνονται μόνο τα δεδομένα προς εκτύπωση που θα έχεις ορίσει από μια φόρμα χρησιμοποιώντας πεδία Ημερομηνία από - έως ή κάποιο άλλο είδος φιλτραρίσματος. Αυτή είναι και η μοναδική λύση.
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 15-07-20 στις 22:10. |
#6
| |||
| |||
Τάσο ευχαριστώ. Θα το παλέψω και βλέπουμε. |
#7
| |||
| |||
Τάσο καλημέρα. Σε ευχαριστώ για τη λύση που μου έδωσες στο θέμα ΑΝΑΖΗΤΗΣΗ ΕΓΓΡΑΦΗΣ ΣΕ ΠΕΔΙΟ. Στο συγκεκριμένο μας πρόβλημα τώρα. Θέλω να σε ρωτήσω εαν μπορούμε να ορίσουμε απευθείας στην έκθεση το όριο των 14 εκτυπώσιμων σειρών . Η πιο πάνω λύση κατά κάποιο τρόπο δημιουργείτε από μένα με την καταχώρηση των επιπλέον εγγραφών μέχρι να φτάσω στις 14. Το κάνω σε φόρμα που δεν έχω βάλει στο δείγμα που έχω επισυνάψει. Αυτό ακριβώς θέλω να αποφύγω γιατί φορτώνεται ο πίνακας ΤΙΜΟΛΟΓΙΑ1 και αυτός που έφτιαξες temp με πάρα πολλές κενές εγγραφές. Στη δικιά μου βάση δεδομένων στον πίνακα ΤΙΜΟΛΟΓΙΑ1 έχω σύνολο 20.000 εγγραφές από τις οποίες οι 9.000 είναι κενές και δημιουργήθηκαν μόνο και μόνο για την εκτύπωση σε 14 σειρές. Μήπως αυτό μου δημιουργήσει θέμα αργότερα μιας και οι εγγραφές θα πολλαπλασιαστούν ; Περιμένω απάντηση σου . Ευχαριστώ |
#8
| ||||
| ||||
Καλησπέρα Κώστα! Ο πίνακας ΤΙΜΟΛΟΓΙΑ1 δεν χρειάζεται να περιέχει κενές εγγραφές. Οι κενές εγγραφές θα προστεθούν στον πίνακα temp από τον κώδικα. Συνεπώς θα πρέπει να απομονώσεις τον όποιο κώδικα χρησιμοποιείς που προσθέτει κενές εγγραφές στον ΤΙΜΟΛΟΓΙΑ1 και να χρησιμοποιήσεις τον κώδικα του προηγούμενου μου μηνύματος. Μπορείς να δώσεις στη σταθερά Private Const AllowedRecs = 14 το πλήθος των εγγραφών που πρέπει να εμφανίζονται ανά σελίδα στην έκθεση. Επισυνάπτω σχετικό παράδειγμα από όπου μπορεί κανείς να επιλέξει ποιες εγγραφές θα εκτυπωθούν με βάση την ημερομηνία. Καλή συνέχεια! Τάσος .
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Εύρεση εγγραφής και αντιγραφή συγκεκριμένων πεδίων σε νέα εγγραφή | vala | Access - Ερωτήσεις / Απαντήσεις | 1 | 13-09-18 21:30 |
[ Εκθέσεις ] ενοποιηση δεν πεδίων στην εκθεση | ramnikos71 | Access - Ερωτήσεις / Απαντήσεις | 2 | 12-07-16 20:44 |
[Γενικά] Ορισμός σειράς Tab | xristos | Excel - Ερωτήσεις / Απαντήσεις | 8 | 21-05-12 10:46 |
[ Φόρμες ] ΟΡΙΣΜΟΣ ΤΙΜΗΣ | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 5 | 05-11-11 10:21 |
Η ώρα είναι 07:56.