Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Διαγραφή όλων των φορμών της Βάσης

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 15-02-20, 01:02
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή Διαγραφή όλων των φορμών της Βάσης

Γειά σας

Σε μιά φόρμα, ας την ονομάσουμε Form1, έχω τοποθετήσει κουμπί εντολής
με τον παρακάτω κώδικα (γιά διαγραφή όλων τών φορμών της βάσης):
Παράθεση:
Dim i As Long
Dim db As DAO.Database
Dim c As DAO.Container

Set db = CurrentDb()
Set c = db.Containers("Forms")
For i = c.Documents.Count - 1 To 0 Step -1
Debug.Print c.Documents(i).Name
DoCmd.DeleteObject acForm, c.Documents(i).Name
Next i

For i = CurrentProject.AllForms.Count - 1 To 0 Step -1
DoCmd.DeleteObject acForm, CurrentProject.AllForms(i).Name
Next i
Ο κώδικας λειτουργεί επιτυχώς, αλλά μόλις φτάνει στη διαγραφή της Form1
σταματά τις διαγραφές, με το αναμενόμενο μήνυμα ΄"δε μπορεί να διαγραφεί η Form1 επειδή είναι ανοικτή"

Πώς θα μπορούσαμε να τροποποιήσουμε τον κώδικα αυτόν έτσι ώστε να διαγράφονται
όλες οι φόρμες τής βάσης με εξαίρεση τη Form1 (όπου είναι τοποθετημένος και ο κώδικας)!


Σάς ευχαριστώ εκ των προτέρων
Απάντηση με παράθεση
  #2  
Παλιά 18-02-20, 11:14
Super Moderator
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 14-01-2014
Μηνύματα: 234
Προεπιλογή

Καλημέρα Δημήτρη,

Για δοκίμασε το παρακάτω.

Dim i As Long
Dim db As DAO.Database
Dim c As DAO.Container

Set db = CurrentDb()
Set c = db.Containers("Forms")
For i = c.Documents.Count - 1 To 0 Step -1
Debug.Print c.Documents(i).Name
If c.Documents(i).Name <> Me.Name Then
DoCmd.DeleteObject acForm, c.Documents(i).Name
End If
Next i

For i = CurrentProject.AllForms.Count - 1 To 0 Step -1
If CurrentProject.AllForms(i).Name <> Me.Name Then
DoCmd.DeleteObject acForm, CurrentProject.AllForms(i).Name
End If
Next i

Καλή συνέχεια.
__________________
Βραχνάκης Γιώργος
vrahnakisg@gmail.com
Απάντηση με παράθεση
  #3  
Παλιά 18-02-20, 12:12
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-07-2014
Περιοχή: Πάτρα
Μηνύματα: 385
Προεπιλογή

Καλησπέρα

Γιώργο, λειτουργεί άψογα!
Σε υπερευχαριστώ για τη βοήθειά σου.

Καλή συνέχεια...
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Κλείσιμο όλων των ανοιχτών φορμών εκτός απο την MainForm και την LoginForm γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 11-12-14 20:44
Αυτόματη διαγραφή βάσης γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 25-09-14 00:24
κλείσιμο όλων των ανοιχτών φορμών γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 5 01-07-14 21:07
[ Φόρμες ] Ανανέωση Φορμών stelianta Access - Ερωτήσεις / Απαντήσεις 2 21-03-12 22:51
[ Φόρμες ] Επικοινωνία δύο φορμών iondep Access - Ερωτήσεις / Απαντήσεις 9 30-09-10 17:29


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