Εμφάνιση ενός μόνο μηνύματος
  #13  
Παλιά 14-10-13, 02:22
sarafis Ο χρήστης sarafis δεν είναι συνδεδεμένος
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-05-2009
Περιοχή: Αθήνα
Μηνύματα: 169
Προεπιλογή

Γιώργο καλημέρα
Το παράδειγμα που σου έγραψα ήταν πολύ απλό για να καταλάβεις την διαδικασία. Δυστυχώς τα πράγματα είναι πιο δύσκολα και σε περιμένει πολύ δουλειά.
Για κάθε υπόδειγμα εγγράφου πρέπει να γραφεί κώδικας και να αντιστοιχισθεί σε κάποιο κουμπί.
Σε κατάσταση σχεδίασης προσθέτεις ένα κουμπί και στο συμβάν "Με το κλίκ" επιλέγεις δόμηση κώδικα. Μπορείς να αντιγράψεις τον κώδικα από το υπάρχον κουμπί και να τον επικολήσεις στο νέο και να τροποποιήσεις τις εγγραφές.
doc.bookmarks("Επίθετο").Select (στην γραμμή αυτή επιλέγεις το όνομα του σελιδοδείκτη που έχεις ορίσει στο πρότυπο)
objWord.Selection.TypeText Me.[Επίθετο] (στην γραμμή αυτή επιλέγεις το όνομα του πεδίου της βάσης σου που περιέχει τα δεδομένα που θες να φορτωθούν στην θέση του σελιδοδείκτη)
On Error Resume Next ( Η γραμμή αυτή δηλώνει στον κώδικα να αγνοεί τα σφάλματα. Σφάλμα προκαλείται όταν δεν υπάρχει ο σελιδοδείκτης ή αν το πεδίο με τα δεδομένα είναι κενό.) Αν συμπληρώσεις όλα τα πεδία στην βάση μπορείς να το σβήσεις για να σιγουρευτείς ότι έχεις τοποθετήσει όλους τους σελιδοδείκτες.
Δεν ξέρω αν τυπώνεις μαζί δύο η περισσότερα έγγραφα, αν ναι μπορείς να τα τοποθετήσεις στο ίδιο πρότυπο. Βέβαια ακόμη και στο ένα έγγραφο κάποια πεδία επαναλαμβάνονται, όπως θα είδες και στο παράδειγμα οπότε στους σελιδοδείκτες θα πρέπει να βάζεις το ίδιο όνομα με αριθμό στο τέλος πχ Ημερομηνία, Ημερομηνία1, Ημερομηνία2 κλπ Στον κώδικα θα πρέπει να προσθέσεις επιπλέον πεδία όπως στο παράδειγμα. Από όσο είδα στον πίνακά σου έχεις 111 πεδία, όπως προείπα σε προηγούμενο μήνυμα τα κενά και οι κάθετοι στα ονόματα των πεδίων δημιουργούν προβλήματα. Καλό θα ήταν στην παρούσα φάση να αντικαταστήσεις τα ονόματα των πεδίων βάζοντας underscore ( _ ) όπου έχεις κενά, καθέτους παύλες κλπ.
Αφού αλλάξεις τα ονόματα των πεδίων, σε ένα αρχείο WORD μπορείς να φτιάξεις κώδικα για όλα τα πεδία τον οποίο θα επικολείς στον κώδικα κάθε κουμπιού και θα σβήνεις όσες γραμμές δεν υπάρχουν στο συγκεκριμένο πρότυπο ενώ θα προσθέτεις κώδικα για όσα πεδία επαναλαμβάνονται στο πρότυπο.
Τα ίδια ονόματα των πεδίων θα χρησιμοποιήσεις και για ονόματα των σελιδοδεικτών.
Από ότι είπες από την βάση σου εκτυπώνονται 30 διαφορετικά έγγραφα οπότε απαιτείται πολύ δουλειά για μπούν σελιδοδείκτες σε όλα, ο κώδικας είναι το λιγότερο πρόβλημα. Επιμένω πως πρέπει να τροποποιήσεις τα ονόματα των πεδίων στην παρούσα φάση γιατί αργότερα η κατάσταση θα γίνει πιο πολύπλοκη.
Όταν ολοκληρώσεις την δουλειά θα συνδέσεις τον πίνακα από την βάση που έχεις τις εγγραφές σου και με ένα ερώτημα προσάρτησης, όπου θα αντιστοιχίσεις τα πεδία με τα νεα, θα μεταφέρεις τις εγγραφές στον νέο πίνακα.
Για να μην σε κουράσω άλλο ξεκίνα το και είμαστε εδώ για να σε βοηθήσουμε σε όποια φάση κολήσεις.
Δεν ξέρω αν με κάποια συνάρτηση μπορούμε να περιορίσουμε την διαδικασία. Πιο πολύ με προβληματίζουν οι επαναλαμβανόμενες εγγραφές στους σελιδοδείκτες και δεν έχω εικόνα των υπόλοιπων εγγράφων που χρησιμοποιούνται καθώς και εάν εκτυπώνονται μαζί περισσότερα του ενός.
ΥΓ
Τα κουμπιά για την εκτύπωση των εγγράφων μπορείς να τοποθετήσεις στις καρτέλες όπου συμπληρώνεις τα στοιχεία του κάθε σταδίου της διαδικασίας.
Απάντηση με παράθεση