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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-05-17, 21:58
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή Μαζική μετονομασία αρχείων

Καλησπέρα σε όλη την ομάδα.
Θα ήθελα την εξής βοήθεια. Έχω έναν φάκελο με pdf αρχεία για τα οποία θα ήθελα να προχωρήσω σε μία μαζική μετονομασία καθώς στην αρχή της κάθε ονομασίας πρέπει να εισάγω ένα κωδικό.

Έχοντας έναν πίνακα με τα πεδία Current_File_Name και New_File_name, θα μπορούσαμε μέσω κώδικα VBA να φτιάξουμε μία διαδικασία προκειμένου να γίνεται μαζικά η μετονομασία των αρχείων;

Τα πεδία έχουν ενδεικτικά τις κάτωθι τιμές :
Current_File_Name : C:\pdfFiles\1234.pdf
New_File_name: C:\pdfFiles\ABC_1234.pdf

Ευχαριστώ εκ των προτέρων

Γρηγόρης
Απάντηση με παράθεση
  #2  
Παλιά 18-05-17, 15:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γρηγόρη, βάλε σε μια φόρμα ένα κουμπί (cmdSetNewName) και, στο συμβάν κλικ , πρόσθεσε τον κώδικα:

Κώδικας:
Private Sub cmdSetNewName_Click()
    Dim rs As DAO.Recordset, tblName As String
    Dim OldName As String, NewName  As String


    On Error GoTo errHandler
    tblName = "Table1"  'Εδώ ορίζεται το πραγματικό όνομα του πίνακα
    Set rs = CurrentDb.OpenRecordset(tblName)
    With rs
        If .RecordCount Then
            Do Until .EOF
                OldName = !Current_File_Name: NewName = !New_File_name
                If Dir(OldName) <> "" Then
                    Name OldName As NewName
                End If
                .MoveNext
            Loop
        End If
        MsgBox "Η μετανομασία ολοκληρώθηκε"
    End With
Exit_Sub:
    Set rs = Nothing
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
    Resume Exit_Sub
End Sub
Απάντηση με παράθεση
  #3  
Παλιά 18-05-17, 20:11
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή

Ευχαριστώ πολύ Γιώργο! Θα το δοκιμάσω
Απάντηση με παράθεση
  #4  
Παλιά 18-05-17, 21:02
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή

Είναι αυτό που χρειαζόμουν! Ευχαριστώ πολύ Γιώργο
Απάντηση με παράθεση
  #5  
Παλιά 18-05-17, 21:41
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Γρηγόρη να είσαι καλά.
Απάντηση με παράθεση
  #6  
Παλιά 21-05-17, 14:48
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή

Γιώργο καλησπέρα. Αντιμετωπίζω ένα επιπλέον θέμα. Κάποια pdf συνδέονται με περισσότερους τους ενός κωδικούς. Δηλαδή μπορεί για παράδειγμα να έχω 10 pdf που να συνδέονται με 12 κωδικούς.
Αυτό θα έχει ως αποτέλεσμα στον πίνακα «Rename» (έτσι τον έχω ονομάσει) να υπάρχουν διπλότυπες εγγραφές στο πεδίο «Current_File_Name»

Π.χ
Current_File_Name | New_File_name
C:\pdfFiles\1234.pdf | C:\pdfFiles\001_1234.pdf
C:\pdfFiles\1234.pdf | C:\pdfFiles\002_1234.pdf
C:\pdfFiles\1234.pdf | C:\pdfFiles\003_1234.pdf

Υπάρχει η δυνατότητα, όταν εντοπίζει τέτοιες περιπτώσεις να προχωρά σε δημιουργία αντιγράφων των pdf αρχείων και εν συνεχεία να μετονομάσει και τα αντίγραφα;

Προς το παρόν αυτό που κάνω είναι, για τις μοναδικές εγγραφές να μετονομάσω τα pdf με τον τρόπο που θέλω ενώ για τις διπλότυπες, να διατηρώ την ίδια ονομασία εισάγοντας τον χαρακτήρα underscore στην αρχή της αρχικής ονομασίας για να μπορώ να τα εντοπίσω. Μετά κάνω copy και rename manually.

Ευχαριστώ για την πολύτιμη βοήθεια σου

Γρηγόρης
Απάντηση με παράθεση
  #7  
Παλιά 21-05-17, 21:10
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γρηγόρη, δοκίμασε τον κώδικα:

Κώδικας:
Private Sub cmdCopyFiles_Click()
    Dim rs As DAO.Recordset, tblName As String, x As String
    Dim OldName As String, NewName As String

    On Error GoTo errHandler
    tblName = "Rename"  'Εδώ ορίζεται το πραγματικό όνομα του πίνακα
    Set rs = CurrentDb.OpenRecordset(tblName)

    With rs
        If .RecordCount Then
            Do Until .EOF
                OldName = !Current_File_Name: NewName = !New_File_name
                If Dir(OldName) <> "" Then
                    If Dir(NewName) = "" Then
                        FileCopy OldName, NewName
                    End If
                End If
                .MoveNext
            Loop
            Set rs = Nothing
            If MsgBox("Η αντιγραφή και μετανομασία ολοκληρώθηκε." & vbCrLf & _
                    "          Να διαγραφούν τα αρχικά αρχεία;", vbYesNo) = vbYes Then
                KillFiles tblName
            End If
        End If
    End With
    Exit Sub
errHandler:
    MsgBox Err.Description, vbCritical, "Error #" & Err.Number
End Sub

Public Sub KillFiles(tblName As String)
    Dim rs As DAO.Recordset, OldName As String

    Set rs = CurrentDb.OpenRecordset(tblName)
    With rs
        If .RecordCount Then
            Do Until .EOF
                OldName = !Current_File_Name
                If Dir(OldName) <> "" Then
                    Kill OldName
                End If
                .MoveNext
            Loop
        End If
    End With

End Sub
Ο κώδικας αντιγράφει τα αρχικά αρχεία δίνοντας στα αντίγραφα τα επιθυμητά ονόματα. Ακολούθως, αν συμφωνούμε, διαγράφει και τα αρχικά αρχεία.
Απάντηση με παράθεση
  #8  
Παλιά 21-05-17, 22:28
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή

Θα το δοκιμάσω. Ευχαριστώ πολύ Γιώργο Για την βοήθεια σου
Απάντηση με παράθεση
  #9  
Παλιά 25-05-17, 11:45
Όνομα: Γρηγόρης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 20-03-2013
Μηνύματα: 133
Προεπιλογή

Γιώργο καλησπέρα. Δεν βρίσκω τρόπο να σε ευχαριστήσω. Η βοήθεια σου ήταν πολύτιμη για εμένα. Να είσαι πάντα καλά!
Απάντηση με παράθεση
  #10  
Παλιά 25-05-17, 18:44
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Να είσαι καλά, Γρηγόρη
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Μαζική ενημέρωση πεδίου kapetang Access samples - Χρήσιμα αρχεία & παραδείγματα 0 18-09-16 09:28
[Γενικά] Μετονομασία φύλλου ανάλογα το έτος mp3-GR Excel - Ερωτήσεις / Απαντήσεις 1 16-02-16 07:54
[ Φόρμες ] Μαζική απόκρυψη πεδίου artchrist73 Access - Ερωτήσεις / Απαντήσεις 2 22-12-13 20:01
[ Ερωτήματα ] Μαζική αλλαγή ΦΠΑ σε ερώτημα artchrist73 Access - Ερωτήσεις / Απαντήσεις 6 14-12-13 21:46
[Μορφοποίηση] Μετονομασία στήλης κελιών adonio Excel - Ερωτήσεις / Απαντήσεις 3 26-05-11 10:39


Η ώρα είναι 11:28.