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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 28-09-13, 21:10
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-12-2011
Μηνύματα: 23
Προεπιλογή Αποστολή επισυναπτόμενων αρχείων μέσα από φόρμα με mail

Γεια σας, έχω μια βάση που καταγράφω διάφορα προβλήματα και τους δίνω αύξουσα αρίθμηση (Πεδίο Id),
Σε μία φόρμα με όνομα PROTOKOLO που βλέπει τον Πίνακα PROTOKOLO καταγράφω τα προβλήματα και τα στέλνω σαν pdf με email για επίλυση.
Στη φόρμα υπάρχει και ένα πεδίο με τύπο Συνημμένο που επισυνάπτω διάφορα έγγραφα
Θα ήθελα στο mail που δημιουργεί το κουμπάκι που έφτιαξα να μπαίνουν και τα επισυναπτόμενα έγγραφα μαζί με το pdf του προβλήματος
Σας στέλνω παράδειγμα της βάσης
Ευχαριστώ
Συνημμένα Αρχεία
Τύπος Αρχείου: zip TEST PROTOKOLO.zip (68,1 KB, 89 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 02-10-13, 12:24
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-12-2011
Μηνύματα: 23
Προεπιλογή

Στο internet βρήκα τον παρακάτω κώδικα που τον προσάρμοσα στη βάση μου και τον εκτελώ με ένα κουμπί cmdEmail
Λειτουργεί αλλά όλα γίνονται από το microsoft. outlook ενεργοποιώντας από τα tools - references to microsoft.object library
κάτι που δεν μπορούν να τρέξουν όλοι οι χρήστες που έχουν άλλα προγράμματα mail

Αν υπάρχει ευκολότερος τρόπος θα είναι καλοδεχούμενος.

Private Sub cmdEmail_Click()
Dim rsTable As DAO.Recordset
Dim rsAttachments As DAO.Recordset
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment

' Create the Outlook session.
On Error GoTo cmdEmail_Click_Error
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
'Add the To recipient(s) to the message. Substitute
'your names here.
Set objOutlookRecip = .Recipients.Add("onoma@yahoo.com") '<--Recipient's name or email address
objOutlookRecip.Type = olTo
'The Subject of the message.
.Subject = "Email Subject" '<--Subject
'The Email Body Text
.Body = "Body text of the email" '<--Email Body text.

'Instantiate the parent recordset.
Set rsTable = CurrentDb.OpenRecordset("PROTOKOLO")

'rsTable.MoveFirst
'Loop through the Records.
Do While Not rsTable.EOF
'Instantiate the child recordset.
Set rsAttachments = rsTable.Fields("SINIMMENA2").Value

'Loop through the attachments, attaching each one to the email
Do While Not rsAttachments.EOF
'Save current attachment to disk.
rsAttachments.Fields("FileData").SaveToFile "C:\"

Set objOutlookAttach = .Attachments.Add("C:\" & rsAttachments.Fields("FileName"))
'Delete this temp file:
Kill "C:\" & rsAttachments.Fields("FileName")

rsAttachments.MoveNext
Loop
rsTable.MoveNext

Loop
'Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next

'Send email without viewing it.
'.Send

'Dispay email before sending.
.Display

End With
'Cleanup Code
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
Set objOutlookRecip = Nothing
Set objOutlookAttach = Nothing
'No need to close rsAttachments,
'in fact if you close it, it will generate an error
Set rsAttachments = Nothing
rsTable.Close
Set rsTable = Nothing
On Error GoTo 0
Exit Sub
cmdEmail_Click_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure cmdEmail_Click"

End Sub
Απάντηση με παράθεση
  #3  
Παλιά 02-10-13, 19:20
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Καλησπέρα Δημήτρη!

Με χρήση VBA και χωρίς τη χρήση εξωτερικών στοιχείων ελέγχου (*.ocx) μπορείς να στείλεις συνημμένο μέσω Email μόνο με Mιcrosoft Outlook.

Μια λύση με CDO θα εξυπηρετούσε αν τα συνημμένα μπορούσαν να αποστέλλονται από έναν έγκυρο λογαριασμό ηλεκτρονικού ταχυδρομείου.
Και πάλι θα πρέπει να φροντίσεις στον υπολογιστή προορισμού να υπάρχει και να είναι δηλωμένο στο μητρώο των Windows CDOSYS.dll (για Windows 2000).

Σε κάθε άλλη περίπτωση θα χρειαστείς κάποιο εμπορικό ή μη στοιχείο ελέγχου (το οποίο επίσης θα πρέπει να βρίσκεται στον υπολογιστή προορισμού και να είναι δηλωμένο στο μητρώο των Windows)
που να σου επιτρέπει την αυτόματη αποστολή συνημμένου μέσω του προεπιλεγμένου προγράμματος Email του κάθε υπολογιστή.

Με εκτίμηση

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #4  
Παλιά 02-10-13, 23:10
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-12-2011
Μηνύματα: 23
Προεπιλογή

Τάσο ευχαριστώ για την απάντηση σου !!!
Ερώτηση αν ξέρεις εσύ ή κάποιος άλλος, όταν τρέχει η εφαρμογή με access runtime οι βιβλιοθήκες (object library ) που έχουμε τσεκάρει στα tools (πχ Microsoft Outlook 12 Object Library) όταν δημιουργούμε τη βάση μεταφέρονται και λειτουργεί ο κώδικας που τις χρησιμοποιεί ή θα έχω πρόβλημα;
Απάντηση με παράθεση
  #5  
Παλιά 03-10-13, 01:26
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Δημήτρη καλησπέρα!!!

Όλα τα reference μεταφέρονται όταν η βάση είναι στη μορφή μετατροπή σε MDE.
Όταν είναι MDB και σταλεί με email ο απομακρυσμένος υπολογιστής θα λάβει την βάση με miissing στις αναφορές.
Στη δεύτερη περίπτωση CDO που αναφέρει ο Τάσος θα πρέπει να περάσεις στα reference την αναφορά Microsoft CDO for windows 2000 library.
Απάντηση με παράθεση
  #6  
Παλιά 03-10-13, 08:37
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-12-2011
Μηνύματα: 23
Προεπιλογή

Ευχαριστώ πολύ Αλέξανδρε.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[VBA] Αποστολή e-mail σε πελάτες μου (vba) mpapada Excel - Ερωτήσεις / Απαντήσεις 0 07-05-15 23:58
Αποστολή αρχείων με e-mail μέσω Αccess mpapada Access - Ερωτήσεις / Απαντήσεις 0 24-04-15 15:25


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