![]() |
Μαζική διαγραφή πολλών συνημμένων Καλησπέρα σε όλο το forum. Για μια ακόμα φορά ζητώ την βοήθεια σας σε ένα πρόβλημά μου.. Έχω μία φόρμα στην οποία εμφανίζετε ένα περιγραφή "Note", μια ημερομηνία "Date" και 4 διαφορετικές επισυναπτόμενες εικόνες "Image_1", "Image_2", "Image_3" και "Image_4". Το ερώτημά μου είναι πώς μπορώ με ένα "clik" να κάνω ταυτόχρονη διαγραφή μόνο των τεσσάρων εικόνων χωρίς να διαγράψω όλη την εγγραφή (δηλ την ημερομηνία "Date" και τις σημειώσεις "Note")??? |
Καλημέρα Σωτήρη, υποθέτω ότι οι εικόνες είναι αποθηκευμένες στο πεδίο fImages τύπου attachment (συνημμένο) και ότι το κουμπί λέγεται cmdDelImages. Ο παρακάτω κώδικας, που εκτελείται πατώντας το κουμπί, θα διαγράψει όλες τις εικόνες από το πεδίο fImages της τρέχουσας εγγραφής. Κώδικας: Private Sub cmdDelImages_Click()Φιλικά/Γιώργος |
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 πού κάνω λάθος...:wall: |
1 Συνημμένο(α) Σωτήρη, πήγαινε στον κώδικα, μενού Tools, επιλογή References και έλεγξε αν υπάρχουν οι αναφορές που φαίνονται στο συνημμένο. Αν δε λυθεί το πρόβλημα ανέβασε δείγμα της ΒΔ. |
1 Συνημμένο(α) 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"... για τα υπόλοιπα??? :035: Ευχαριστώ |
Καλησπέρα Σωτήρη, νόμιζα ότι έχεις ένα πεδίο τύπου Attachment (συνημμένο) με πολλές εικόνες. Για να διαγράψεις όλες τις εικόνες από όλα τα πεδία συνημμένων, δοκίμασε τον κώδικα: Κώδικας: Private Sub cmdDelImages_Click() |
kapetang πολύ γρήγορος και πάλι αφού κατάφερα να σου δώσω να καταλάβεις τι θέλω.... όμως πάλι κάτι δεν πάει καλά.. ...λογικά κάτι δεν πάει καλά με το loop... μου βγάζει λάθος εδώ: "Me.Controls(images(i)).Requery" |
Πιθανόν τα ονόματα των πεδίων στη φόρμα, δεν ταυτίζονται με τα ονόματα των πεδίων στον πίνακα: "USimage1", "USimage2", "USimage3", "USimage4", "USimage5". |
kapetang ευχαριστώ πολύ για τις πολύτιμες συμβουλές σου πάνω στις οποίες βασίστηκα για να βρω την παρακάτω λύση:icon_yes: 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, Δεν υπάρχει τρέχουσα εγγραφή". Καμιά ένσταση στην παραπάνω λύση ή ιδέα στα ψιλοπροβληματάκια που προέκυψαν? |
1 Συνημμένο(α) Καλημέρα Σωτήρη, υπάρχουν ενστάσεις, αλλά αντί να τις περιγράψω, δοκίμασε: 1) Πέρασε στο επισυναπτόμενο αρχείο πολλές εικόνες σε κάποια (ή όλα) τα πεδία συνημμένων (πχ USimage2, USimage4) και πάτησε το κουμπί. 2) Δοκίμασε το ίδιο με τον κώδικά σου. Δες τη διαφορά. Φιλικά/Γιώργος |
1 Συνημμένο(α) Ευχαριστώ για ακόμη μια φορά kapetang για τις συμβουλές σου και για τον χρόνο σου σπεταλάς με μένα τον άσχετο!!! Το παράδειγμά σου δουλεύει πολύ καλά και αυτό είναι που θέλω όμως όταν το προσαρμόζω στην βάση μου δεν "τρέχει" ..... :too_angry: Δεν μπορώ να καταλάβω τι κάνω λάθος... Από την άλλη η βάση μου είναι πολύ μεγάλη και πολύπλοκη για να μπορέσω να σου την στείλω. Παρακάτω σου επισυνάπτω κάποιες εικόνες από το πρόβλημα που μου βγάζει.. Ευχαριστώ για ακόμη μία φορά για τον χρόνο σου.. |
Σωτήρη, δώσε στα πεδία συνημμένων στη φόρμα ίδιο όνομα με αυτό που έχουν στον πίνακα. Χρησιμοποίησε αντιγραφή και επικόλληση. Το ξανάπα, αλλά ....... |
1 Συνημμένο(α) kapetang..... δες συνημμένο ????? και πως τρέχει με την δικιά μου πρωτόγονη λύση έχοντας τα ίδια πεδία??? :wall: |
1 Συνημμένο(α) Φίλε μου έχεις μπερδευτεί. Στο συνημμένο σου φαίνεται η ιδιότητα Control Source (προέλευση στοιχείου ελέγχου) και όχι το όνομα. Για το όνομα δες το συνημμένο. |
kapetang αν και καθυστερημένα (γιατί έλειπα), ευχαριστώ πολύ...:worthy: ...έφαγα μεγάλο φλαςςς... Ο κώδικά σου δουλεύει τέλεια!!! Ευχαριστώ για την υπομονή σου και την επιμονή σου να με ξεστραβώσεις... |
| Η ώρα είναι 16:57. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.