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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 18-03-12, 23:49
Το avatar του χρήστη dimnot
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-11-2010
Περιοχή: Ηράκλειο Κρήτης
Μηνύματα: 55
Προεπιλογή Εξαγωγή στοιχείων από φόρμα σε Word

Καλησπέρα σε όλους
Θα ήθελα να επανέλθω στο θέμα ζητώντας την βοήθειά σας. Θέλω να κάνω αυτό ακριβώς που λέει το θέμα, προσπαθώ δηλαδή σε μια βάση που έχω φτιάξει να πετύχω όσο πιο απλά γίνεται, τη μεταφορά συγκεκριμένων στοιχείων από μια φόρμα, σε συγκεκριμένα σημεία ενός συγκεκριμένου εγγράφου Word με το "πάτημα" ενός κουμπιού εντολής. Κάπου είχα δει ένα αρχείο το οποίο με αυτό τον τρόπο, πατώντας δηλαδή ένα κουμπί εντολής , αυτόματα άνοιγε το αιτούμενο αρχείο και αυτόματα "γέμιζαν" πεδία του τα οποία ήταν φόρμες που περιείχαν σελιδοδείκτες. Το αρχείο βέβαια ήταν σε συγκεκριμένο φάκελο μέσα στο δίσκο (νομίζω C:\.....) καθώς και η ίδια η ΒΔ (πιστεύω ότι κάποιο ρόλο θα έπαιζε αυτό).
Δεν ξέρω αν και κατά πόσο είναι εύκολο να γίνει κάτι τέτοιο. Ανεβάζω ένα απλό δείγμα για να καταλάβετε τι εννοώ. Είναι μία πολύ απλή ΒΔ με μία φόρμα στην οποία καταχωρώ για παράδειγμα στοιχεία ταυτότητας , τα οποία αποθηκέυονται σε ένα πίνακα , από τον οποίο θέλω πατώντας το κουμπί εντολής , να "φεύγουν" και να "γεμίζουν" τα σημεία που έχω ορίσει με σελιδοδείκτες, πχ σε μια υπευθυνη δήλωση , έγγραφο του Word και όχι σε μια έκθεση της access.

Ευχαριστώ εκ των προτέρων
Δημήτρης
Συνημμένα Thumbnails
Εξαγωγή στοιχείων από φόρμα σε Word-erotima.jpg  
Συνημμένα Αρχεία
Τύπος Αρχείου: zip test.zip (355,8 KB, 55 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 19-03-12, 09:59
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

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

Εκτός αυτού, πριν επισυνάψεις το αρχείο κάνε μια συμπύκνωση & επιδιόρθωση. Ο όγκος του αρχείου θα μειωθεί σημαντικά με αυτόν τον τρόπο.

Τώρα στη ερώτηση σου:

Φρόντισε να επαναφέρεις τη βάση στην αρχική μορφή της (Άρση περιορισμών) για να μπορείς να κάνεις τις δοκιμές σου.

Στην ιδιότητα Ετικέτα του πεδίου Επώνυμο πληκτρολόγησε τον αριθμό 2 (υποδηλώνει τη σειρά εμφάνισης του πεδίου φόρμας (Επώνυμο ή Surname) στο Word.

Στην ιδιότητα Ετικέτα του πεδίου Κείμενο8*** πληκτρολόγησε τον αριθμό 1 (υποδηλώνει τη σειρά εμφάνισης του πεδίου φόρμας (Όνομα ή Name) στο Word.

Κάνε το ίδιο και στα υπόλοιπα πεδία της Access.

Άλλαξε το όνομα στο κουμπί "Υπεύθυνη δήλωση" σε CmdSendToWD
κατόπιν αντιστοίχησε τον παρακάτω κώδικα στο συμβάν "Με το κλικ" του κουμπιού:

Κώδικας:
Private Sub CmdSendToWD_Click()
    Dim wdDoc As Object, wdPath As String, Ctl As Access.Control
    ' wdPath = "C:\Δηλώσεις\Υπεύθυνη δήλωση.doc"  'Προσάρμοσε τη διαδρομή
    wdPath = CurrentProject.Path & "\Υπεύθυνη δήλωση.doc"   'Για να τρέξει το παράδειγμα σου
    If Dir(wdPath, vbDirectory) <> vbNullString Then
        Set wdDoc = GetObject(wdPath)
    Else
        MsgBox "Το αρχείο δεν βρέθηκε!"
        Exit Sub
    End If
    For Each Ctl In Me.Section(0).Controls
        If TypeOf Ctl Is Access.TextBox Then
            If IsNumeric(Ctl.Tag) Then
                wdDoc.FormFields(CInt(Ctl.Tag)).result = Nz(Ctl, vbNullString)
            End If
        End If
    Next
    wdDoc.Application.Visible = True
    AppActivate wdDoc.Name
End Sub
Επίσης, φρόντισε να κλειδώσεις το έγγραφο Word .
Πως;

Κάνε κλικ στην επιλογή Εργαλεία >Προστασία εγγράφου...

Τσέκαρε το "Δυνατότητα μόνο αυτού του τύπου επεξεργασίας στο έγγραφο:"
και από τη λίστα ακριβώς από κάτω επίλεξε: Συμπλήρωση φορμών.

Πάτησε το κουμπί "Ναι να ξεκινήσει η ενεργοποίηση προστασίας"

Καλή συνέχεια!

Τάσος

*** Το Όνομα. Η ονοματολογία που χρησιμοποιείς θα σε κουράσει και μπορεί να προκαλέσει λάθη.
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 19-03-12 στις 10:20.
Απάντηση με παράθεση
  #3  
Παλιά 19-03-12, 12:23
Όνομα: ΝΑΣΟΣ
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-10-2010
Μηνύματα: 443
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από DIMNOT Εμφάνιση μηνυμάτων
Καλησπέρα σε όλους
Θα ήθελα να επανέλθω στο θέμα ζητώντας την βοήθειά σας. Θέλω να κάνω αυτό ακριβώς που λέει το θέμα, προσπαθώ δηλαδή σε μια βάση που έχω φτιάξει να πετύχω όσο πιο απλά γίνεται, τη μεταφορά συγκεκριμένων στοιχείων από μια φόρμα, σε συγκεκριμένα σημεία ενός συγκεκριμένου εγγράφου Word με το "πάτημα" ενός κουμπιού εντολής. Κάπου είχα δει ένα αρχείο το οποίο με αυτό τον τρόπο, πατώντας δηλαδή ένα κουμπί εντολής , αυτόματα άνοιγε το αιτούμενο αρχείο και αυτόματα "γέμιζαν" πεδία του τα οποία ήταν φόρμες που περιείχαν σελιδοδείκτες. Το αρχείο βέβαια ήταν σε συγκεκριμένο φάκελο μέσα στο δίσκο (νομίζω C:\.....) καθώς και η ίδια η ΒΔ (πιστεύω ότι κάποιο ρόλο θα έπαιζε αυτό).
Δεν ξέρω αν και κατά πόσο είναι εύκολο να γίνει κάτι τέτοιο. Ανεβάζω ένα απλό δείγμα για να καταλάβετε τι εννοώ. Είναι μία πολύ απλή ΒΔ με μία φόρμα στην οποία καταχωρώ για παράδειγμα στοιχεία ταυτότητας , τα οποία αποθηκέυονται σε ένα πίνακα , από τον οποίο θέλω πατώντας το κουμπί εντολής , να "φεύγουν" και να "γεμίζουν" τα σημεία που έχω ορίσει με σελιδοδείκτες, πχ σε μια υπευθυνη δήλωση , έγγραφο του Word και όχι σε μια έκθεση της access.

Ευχαριστώ εκ των προτέρων
Δημήτρης

Καλημέρα σε όλους.
Δημήτρη με τη πολύτιμη βοήθεια του Τάσου σε μια ανάλογη δική μου περίπτωση,
ανεβάζω τη βάση σου με μικροαλλαγές.

1. Στον Πίνακα πρόσθεσα τα πεδία Επώνυμο μητέρας, ΑΔΤ, Τόπος κατοικίας,
και Τηλέφωνο που χρειάζονται για την Δήλωση
2. Στη φόρμα πατώντας το κουμπί Υπεύθυνη Δήλωση δημιουργεί αυτόματα
στο δίσκο C, το φάκελο "ΔΗΛΩΣΕΙΣ" δηλ c:\ΔΗΛΩΣΕΙΣ και έναν υποφάκελο με το
όνομα του έτους και του μήνα δημιουργίας της δήλωσης, όπου εκεί αποθηκεύεται
η εκάστοτε υπεύθυνη δήλωση με το όνομα και την ημερομηνία δημιουργίας.

Δηλ. για τον κ.Ξενάκη με σημερινή ημερομηνία θα έχουμε
C:\ΔΗΛΩΣΕΙΣ\2012-03\19-03-12 - ΞΕΝΑΚΗΣ.doc

Προσοχή!!
Το έγγραφο Υπεύθυνη δήλωση.doc να το αντιγράψεις στο δίσκο c:\

επισυνάπτω
τη βάση

Φιλικά
Νάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip test2.zip (61,8 KB, 92 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη nasos23 : 19-03-12 στις 16:13.
Απάντηση με παράθεση
  #4  
Παλιά 19-03-12, 16:15
Το avatar του χρήστη dimnot
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-11-2010
Περιοχή: Ηράκλειο Κρήτης
Μηνύματα: 55
Προεπιλογή

Καλό μεσημέρι σε όλους ...
Δεν έχω λόγια να σας ευχαριστήσω Τάσο και Νάσο για την αμεσότητα της βοήθειάς σας. Ξεκινάω να κάνω τις δοκιμές μου και επανέρχομαι …
Σας ευχαριστώ και πάλι
Δημήτρης
Απάντηση με παράθεση
  #5  
Παλιά 23-03-12, 17:17
Το avatar του χρήστη dimnot
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-11-2010
Περιοχή: Ηράκλειο Κρήτης
Μηνύματα: 55
Προεπιλογή

Καλό απόγευμα και πάλι σε όλους ...
Μετά από δοκιμές που έκανα και στις δύο μορφές - λύσεις που μου προτείνατε , και καθόσον τις εφάρμοζα στα αρχεία που θέλω να φτιάξω , μου γεννήθηκαν δύο ερωτήματα που έχουν να κάνουν με τον κώδικα της εντολής.
Συγκεκριμένα για την πρόταση σου φίλε Τάσο έχω να πώ τα καλύτερα από πλευράς ευκολίας υλοποίησης της . Στο μόνο που "κόλλησα" ήταν στο τι πρέπει να κάνω όταν θέλω να βάλω τιμή από ένα πεδίο της access σε δύο διαφορετικά πεδία φόρμας στο ίδιο έγγραφο του word που "ζητάνε" το ίδιο αποτέλεσμα (πχ το Επώνυμο κλπ.). Συγκεκριμένα δεν ξέρω τι τιμή θα πρέπει να βάλω στην ετικέτα .
Στην πρόταση σου φίλε Νάσο παρατήρησα ότι με τον κώδικα που έγραψες , όταν κάποιο πεδίο στης φόρμας της access δεν έχει τίμή (κενό) , η εντολή δεν ολοκληρώνεται παρά μόνο βγάζει το γνωστό "ταμπελάκι" του debug : "Runtime error...type mismatch" και "χτυπάει" στο πεδίο του κώδικα που αφορά την συγκεκριμένη τιμή. Ανεβάζω ξανά τη βδ για να καταλάβεις τι εννοώ, και θα ήθελα αν μπορείς και δε σου κάνει κόπο να ανεβάσεις ξανά τον κώδικα διορθωμένο. Βλέπεις οι γνώσεις μου σε visual basic, είναι αυτές του αρχάριου και έτσι εγώ δεν μπορώ ακόμα να παρέμβω σ'αυτόν.
Σε γενικές γραμμές βέβαια και οι δύο προτάσεις μου έδωσαν το αποτέλεσμα που ήθελα και για το λόγο αυτό σας ευχαριστώ πολύ και πάλι.
Φιλικά
Δημήτρης
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb ερώτημα.mdb (444,0 KB, 55 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 23-03-12, 19:12
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Δημήτρη,

έστω ότι:

το πεδίο(7) του Word πρέπει να έχει την ίδια τιμή με το πεδίο(1)
και το πεδίο(8) του Word πρέπει να έχει την ίδια τιμή με το πεδίο(2)

Βρες το κομμάτι του κώδικα:

Κώδικας:
    
For Each Ctl In Me.Section(0).Controls
        If TypeOf Ctl Is Access.TextBox Then
            If IsNumeric(Ctl.Tag) Then
                wdDoc.FormFields(CInt(Ctl.Tag)).result = Nz(Ctl, vbNullString)
            End If
        End If
 Next
και αντικατέστησε το με αυτό:

Κώδικας:
    For Each Ctl In Me.Section(0).Controls
        If TypeOf Ctl Is Access.TextBox Then
            If IsNumeric(Ctl.Tag) Then
                wdDoc.FormFields(CInt(Ctl.Tag)).result = Nz(Ctl, vbNullString)
            End If
        End If
    Next
   wdDoc.FormFields(7).result = wdDoc.FormFields(1).result 
   wdDoc.FormFields(8).result = wdDoc.FormFields(2).result  
Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #7  
Παλιά 23-03-12, 19:13
Όνομα: Χρήστος Φ.
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 498
Προεπιλογή

Καλησπέρα σας
Για το τελευταίο συνημμένο αρχείο test2.zip χρειάζεται κάποια ρύθμιση στο Word;
Πατώντας το κουμπί στην ΒΔ "πάει" να ανοίξει το Word δεν δημιουργείται η Υπεύθυνη δήλωση!
Απάντηση με παράθεση
  #8  
Παλιά 23-03-12, 20:45
Όνομα: ΝΑΣΟΣ
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-10-2010
Μηνύματα: 443
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από DIMNOT Εμφάνιση μηνυμάτων
Καλό απόγευμα και πάλι σε όλους ...
Μετά από δοκιμές που έκανα και στις δύο μορφές - λύσεις που μου προτείνατε , και καθόσον τις εφάρμοζα στα αρχεία που θέλω να φτιάξω , μου γεννήθηκαν δύο ερωτήματα που έχουν να κάνουν με τον κώδικα της εντολής.
Συγκεκριμένα για την πρόταση σου φίλε Τάσο έχω να πώ τα καλύτερα από πλευράς ευκολίας υλοποίησης της . Στο μόνο που "κόλλησα" ήταν στο τι πρέπει να κάνω όταν θέλω να βάλω τιμή από ένα πεδίο της access σε δύο διαφορετικά πεδία φόρμας στο ίδιο έγγραφο του word που "ζητάνε" το ίδιο αποτέλεσμα (πχ το Επώνυμο κλπ.). Συγκεκριμένα δεν ξέρω τι τιμή θα πρέπει να βάλω στην ετικέτα .
Στην πρόταση σου φίλε Νάσο παρατήρησα ότι με τον κώδικα που έγραψες , όταν κάποιο πεδίο στης φόρμας της access δεν έχει τίμή (κενό) , η εντολή δεν ολοκληρώνεται παρά μόνο βγάζει το γνωστό "ταμπελάκι" του debug : "Runtime error...type mismatch" και "χτυπάει" στο πεδίο του κώδικα που αφορά την συγκεκριμένη τιμή. Ανεβάζω ξανά τη βδ για να καταλάβεις τι εννοώ, και θα ήθελα αν μπορείς και δε σου κάνει κόπο να ανεβάσεις ξανά τον κώδικα διορθωμένο. Βλέπεις οι γνώσεις μου σε visual basic, είναι αυτές του αρχάριου και έτσι εγώ δεν μπορώ ακόμα να παρέμβω σ'αυτόν.
Σε γενικές γραμμές βέβαια και οι δύο προτάσεις μου έδωσαν το αποτέλεσμα που ήθελα και για το λόγο αυτό σας ευχαριστώ πολύ και πάλι.
Φιλικά
Δημήτρης
Δημήτρη καλησπέρα.
Μια μικρή προσθήκη στον κώδικα για το λάθος
On Error Resume Next
Ανεβάζω το αρχείο διορθωμένο

Φιλικά Νάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip test3.zip (59,5 KB, 57 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 23-03-12, 20:51
Όνομα: ΝΑΣΟΣ
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-10-2010
Μηνύματα: 443
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Χρήστος Εμφάνιση μηνυμάτων
Καλησπέρα σας
Για το τελευταίο συνημμένο αρχείο test2.zip χρειάζεται κάποια ρύθμιση στο Word;
Πατώντας το κουμπί στην ΒΔ "πάει" να ανοίξει το Word δεν δημιουργείται η Υπεύθυνη δήλωση!
Καλησπέρα Χρήστο.
Αν κατάλαβα καλά.

Σε προηγούμενη απάντηση στον Δημήτρη "DIMNOT"
σημειώνω.
Προσοχή!!
Το έγγραφο Υπεύθυνη δήλωση.doc να το αντιγράψεις στο δίσκο c:\


Φιλικά
Νάσος
Απάντηση με παράθεση
  #10  
Παλιά 23-03-12, 21:11
Όνομα: Χρήστος Φ.
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 498
Προεπιλογή

Το έχω αντιγράψει, μου ανοίγει την εφαρμογή του Word αλλά όχι το αρχείο της δήλωσης
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Γενικά] Εισαγωγή στοιχείων στο word από λίστα του excel rania1984 Excel - Ερωτήσεις / Απαντήσεις 14 06-03-24 20:25
[Excel07] εξαγωγη στοιχειων απο πολλα φυλλα pnemtsa Excel - Ερωτήσεις / Απαντήσεις 11 06-01-17 12:05
[Μορφοποίηση] Μεταφορά στοιχείων από excel σε word skantzo Excel - Ερωτήσεις / Απαντήσεις 2 15-10-10 01:36


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