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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 21-11-15, 18:45
Όνομα: Σωτήριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 03-07-2012
Μηνύματα: 20
Προεπιλογή Μαζική διαγραφή πολλών συνημμένων

Καλησπέρα σε όλο το forum.
Για μια ακόμα φορά ζητώ την βοήθεια σας σε ένα πρόβλημά μου..

Έχω μία φόρμα στην οποία εμφανίζετε ένα περιγραφή "Note", μια ημερομηνία "Date" και 4 διαφορετικές επισυναπτόμενες εικόνες "Image_1", "Image_2", "Image_3" και "Image_4".

Το ερώτημά μου είναι πώς μπορώ με ένα "clik" να κάνω ταυτόχρονη διαγραφή μόνο των τεσσάρων εικόνων χωρίς να διαγράψω όλη την εγγραφή (δηλ την ημερομηνία "Date" και τις σημειώσεις "Note")???
Απάντηση με παράθεση
  #2  
Παλιά 22-11-15, 11:38
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Σωτήρη, υποθέτω ότι οι εικόνες είναι αποθηκευμένες στο πεδίο fImages τύπου attachment (συνημμένο) και ότι το κουμπί λέγεται cmdDelImages.

Ο παρακάτω κώδικας, που εκτελείται πατώντας το κουμπί, θα διαγράψει όλες τις εικόνες από το πεδίο fImages της τρέχουσας εγγραφής.

Κώδικας:
Private Sub cmdDelImages_Click()
    Dim rs As DAO.Recordset2, rsIm As DAO.Recordset2
    
    Set rs = Me.RecordsetClone
    rs.Bookmark = Me.Bookmark
    Set rsIm = rs.Fields("[fImages]").Value
    Do Until rsIm.EOF
        rsIm.Delete
        rsIm.MoveNext
    Loop
    Me.[fImages].Requery
    rsIm.Close
    rs.Close
End Sub
Η διαγραφή δε μπορεί να αναιρεθεί, συνεπώς πρέπει να είμαστε προσεκτικοί.


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

Τελευταία επεξεργασία από το χρήστη kapetang : 22-11-15 στις 12:30.
Απάντηση με παράθεση
  #3  
Παλιά 25-11-15, 20:56
Όνομα: Σωτήριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 03-07-2012
Μηνύματα: 20
Προεπιλογή

kapetang ευχαριστώ πολύ...

μόλις είδα την λύση που μου πρότεινες ....όμως κάτι δεν πάει καλά...
μου βγάζει ένα μύνημα "user-defined type not defined"

Private Sub cmdDelImages_Click()
Dim rs As DAO.Recordset2, rsIm As DAO.Recordset2

Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage1]").Value
Do Until rsIm.EOF
rsIm.Delete
rsIm.MoveNext
Loop
Me.[USimage1].Requery
rsIm.Close
rs.Close
End Sub


πού κάνω λάθος...
Απάντηση με παράθεση
  #4  
Παλιά 25-11-15, 21:55
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Σωτήρη, πήγαινε στον κώδικα, μενού Tools, επιλογή References και έλεγξε αν υπάρχουν οι αναφορές που φαίνονται στο συνημμένο.

Αν δε λυθεί το πρόβλημα ανέβασε δείγμα της ΒΔ.
Συνημμένα Thumbnails
Μαζική διαγραφή πολλών συνημμένων-references.jpg  
Απάντηση με παράθεση
  #5  
Παλιά 26-11-15, 13:38
Όνομα: Σωτήριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 03-07-2012
Μηνύματα: 20
Προεπιλογή

kapetang ευχαριστώ για ακόμη μία φορά...

από αυτά τα λίγα που διάβασα είχα ενεργοποίησα και το "Microsoft DAO 3.6 Object Library" αλλά όπως καταλαβαίνεις δε λειτούργησε... και συν τις άλλοις δεν μου άφηνε να ενεργοποιήσω και την επιλογή σου "Microsoft Oficce 14.0 Access database engine Object Library".
Με το απενενεργοποίησα το "Microsoft DAO 3.6 Object Library" όλα καλά!!

Όμως έτσι μου σβήνει μόνο το ένα συνημμένο "USimage1" που έχει μια εικόνα. Υπάρχουν άλλα 5 συνημμένα "USimage2" &"USimage3" & "USimage4" & "USimage5" & "USimage6" που έχουν το καθένα από μία φωτογραφία.

Από αυτό που κατάλαβα είναι ότι το LOOP "δουλεύει" μόνο για όσες εικόνες έχει το συνημμένο "USimage1"... για τα υπόλοιπα???

Ευχαριστώ
Συνημμένα Thumbnails
Μαζική διαγραφή πολλών συνημμένων-mvb.jpg  
Απάντηση με παράθεση
  #6  
Παλιά 26-11-15, 15:48
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα
Σωτήρη, νόμιζα ότι έχεις ένα πεδίο τύπου Attachment (συνημμένο) με πολλές εικόνες.
Για να διαγράψεις όλες τις εικόνες από όλα τα πεδία συνημμένων, δοκίμασε τον κώδικα:

Κώδικας:
Private Sub cmdDelImages_Click()
    Dim rs As DAO.Recordset2, rsIm As DAO.Recordset2
    Dim images As Variant, i As Long

    'Εδώ συμπληρώνουμε τα ονόματα των πεδίων
    images = Array("USimage1", "USimage2", "USimage3", "USimage4", "USimage5")

    Set rs = Me.RecordsetClone
    rs.Bookmark = Me.Bookmark
    For i = 0 To UBound(images)
        Set rsIm = rs.Fields(images(i)).Value
        Do Until rsIm.EOF
            rsIm.Delete
            rsIm.MoveNext
        Loop
        Me.Controls(images(i)).Requery
    Next
    rsIm.Close
    rs.Close
End Sub
Φιλικά/Γιώργος
Απάντηση με παράθεση
  #7  
Παλιά 26-11-15, 17:23
Όνομα: Σωτήριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 03-07-2012
Μηνύματα: 20
Προεπιλογή

kapetang πολύ γρήγορος και πάλι αφού κατάφερα να σου δώσω να καταλάβεις τι θέλω....
όμως πάλι κάτι δεν πάει καλά..
...λογικά κάτι δεν πάει καλά με το loop...

μου βγάζει λάθος εδώ:

"Me.Controls(images(i)).Requery"
Απάντηση με παράθεση
  #8  
Παλιά 26-11-15, 18:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Πιθανόν τα ονόματα των πεδίων στη φόρμα, δεν ταυτίζονται με τα ονόματα των πεδίων στον πίνακα: "USimage1", "USimage2", "USimage3", "USimage4", "USimage5".
Απάντηση με παράθεση
  #9  
Παλιά 27-11-15, 11:07
Όνομα: Σωτήριος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 03-07-2012
Μηνύματα: 20
Προεπιλογή

kapetang ευχαριστώ πολύ για τις πολύτιμες συμβουλές σου πάνω στις οποίες βασίστηκα για να βρω την παρακάτω λύση

Private Sub cmdDelImages_Click()
Dim rs As DAO.Recordset2, rsIm As DAO.Recordset2

Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage1]").Value
rsIm.Delete
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage2]").Value
rsIm.Delete
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage3]").Value
rsIm.Delete
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage4]").Value
rsIm.Delete
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage5]").Value
rsIm.Delete
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
Set rsIm = rs.Fields("[USimage6]").Value
rsIm.Delete
MsgBox "Delete All!!!"
End Sub

Τελικά δεν ήταν τα πεδία στην φόρμα που δεν ταυτίζονται με τα ονόματα των πεδίων στον πίνακα γιατί με τα ίδια πεδία "τρέχει" η παραπάνω λύση...
Απλός με τον παραπάνω τρόπο πρέπει να κλείσω και να ξανανοίξω την φόρμα για να εξαφανισθούν οι φωτογραφίες και όταν δεν έχουν όλα τα πεδία συνημμένη φωτογραφία (πχ λείπει συνημμένο στο πεδίο "USimage6" μου βγάζει το μήνυμα " Run-time error 3021, Δεν υπάρχει τρέχουσα εγγραφή".

Καμιά ένσταση στην παραπάνω λύση ή ιδέα στα ψιλοπροβληματάκια που προέκυψαν?
Απάντηση με παράθεση
  #10  
Παλιά 27-11-15, 11:47
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Σωτήρη, υπάρχουν ενστάσεις, αλλά αντί να τις περιγράψω, δοκίμασε:

1) Πέρασε στο επισυναπτόμενο αρχείο πολλές εικόνες σε κάποια (ή όλα) τα πεδία συνημμένων (πχ USimage2, USimage4) και πάτησε το κουμπί.

2) Δοκίμασε το ίδιο με τον κώδικά σου.

Δες τη διαφορά.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip DelAttachments.zip (562,6 KB, 14 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Μαζική ενημέρωση πεδίου kapetang Access samples - Χρήσιμα αρχεία & παραδείγματα 0 18-09-16 10:28
[ Πίνακες ] προσάρτηση συνημμένων μηνύματος σε πίνακα mousatos Access - Ερωτήσεις / Απαντήσεις 0 08-02-16 11:02
[ Εκθέσεις ] Έκθεση συνημμένων Γιωργος Μπεστ Access - Ερωτήσεις / Απαντήσεις 2 16-06-12 13:07
[Εκτύπωση] Εκτύπωση πολλών αρχείων, πολλών επιλογών mak Excel - Ερωτήσεις / Απαντήσεις 7 11-06-12 13:34


Η ώρα είναι 10:30.