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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-03-20, 20:57
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή Δημιουργία Φακέλου και Υποφακέλου ταυτόχρονα

Καλσπερα .Εχω παρει μια βαση απο την αναρτηση εδω http://www.ms-office.gr/forum/access...df-ston-c.html

Θα ηθελα αν γινεται στο κουμπι "Δημιουργια φακελου"αντι να δημιουργει ταυτοχρονα φακελο και υποφακελο σε path που θα επιλεξω εγω αν γινεται μεσω vba βαση του κωδικα αυτου.
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb MakeOpenFolderFinal.accdb (512,0 KB, 14 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 19-03-20, 23:05
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή

Βρηκα την μιση λυση .Εχω τον κωδικα αυτον

Κώδικας:
Option Explicit


Const strParentFolder As String = "C:\"
Public Function MakeNameFolder() As String
    Dim strName As String
    
    If Len(Me.ΟΝΟΜΑ) * Len(Me.ΕΠΙΘΕΤΟ) Then
        strName = Replace(Me.ΟΝΟΜΑ, " ", "_") & "_" & _
                  Replace(Me.ΕΠΙΘΕΤΟ, " ", "_")

        MakeNameFolder = strParentFolder & strName
    End If
End Function
Private Sub cmdCreateFolder_Click()
     Dim strNewFolder As String

    On Error GoTo err_Hander

    strNewFolder = MakeNameFolder
    If strNewFolder <> "" Then
        If Dir(strNewFolder, vbDirectory) = "" Then
            MkDir strNewFolder
            MsgBox "Δημιουργήθηκε φάκελος" & vbCrLf & strNewFolder
        Else
            MsgBox "Ο φάκελος υπάρχει" & vbCrLf & strNewFolder
        End If
    Else
        MsgBox "Υπάρχουν κενά πεδία"
    End If
    Exit Sub
err_Hander:
    MsgBox "Error #" & Err.Number & vbCrLf & Err.Description
End Sub
Private Sub cmdMyButton_Click()
    Dim strFolder As String
    
    strFolder = MakeNameFolder
    If strFolder <> "" Then
        If Dir(strFolder, vbDirectory) = "" Then
            MsgBox "Ο φάκελος δεν υπάρχει" & vbCrLf & strFolder
        Else
            Shell "EXPLORER.EXE" & " " & Chr(34) & strFolder & Chr(34), vbNormalFocus
        End If
    Else
        MsgBox "Υπάρχουν κενά πεδία"
    End If
End Sub
Mε βαση τον κωδικα αυτον μπορει να δημιουργειται και ενας φακελος στον C:\ και μετα να δημιουργειται ο φακελος με ΟΝΟΜΑ-ΕΠΙΘΕΤΟ .Το αποτελεσμα δηλαδη να ειναι c:\test\ΟΝΟΜΑ_ΕΠΙΘΕΤΟ
Απάντηση με παράθεση
  #3  
Παλιά 20-03-20, 09:22
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Γιάννη θα μπορούσες:

1) Στον φάκελλο "c:\ " να δημιουργήσεις τον υποφάκελο "test" και

2) Στον κώδικα να αλλάξεις τη 2η γραμμή μετά το ίσον (=) σε: "c:\test\"
Απάντηση με παράθεση
  #4  
Παλιά 20-03-20, 09:42
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή

Καλημερα
Το σκεφτηκα αυτο απλα ελεγα αν γινεται αυτοματοποιημενα .Ισως με εντολη MlDir?
Απάντηση με παράθεση
  #5  
Παλιά 20-03-20, 10:04
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Γιατί να αυτοματοποιήσω κάτι που το κάνω μία μόνο φορά και μάλιστα πολύ εύκολα;
Απάντηση με παράθεση
  #6  
Παλιά 20-03-20, 10:11
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή

Ελεγα επειδη η βαση θα παει σε αλλο pc.Θα μου πεις και εκει τωτα παλι μπορω να κανω φακελο.Εκτος αν ειναι πολυπλοκο οποτε παω πασο
Απάντηση με παράθεση
  #7  
Παλιά 20-03-20, 10:48
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Μετά τη γραμμή κώδικα: Dim strName As String στην 1η συνάρτηση

πρόσθεσε τον κώδικα:

Κώδικας:
    If Dir(strParentFolder, vbDirectory) = "" Then
        MkDir strParentFolder
    End If
Ο κώδικας ελέγχει αν υπάρχει ο φάκελος strParentFolder (=c:\test\) και αν δεν υπάρχει τον δημιουργεί.
Απάντηση με παράθεση
  #8  
Παλιά 20-03-20, 11:42
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή

Σε ευχαριστω Γιωργο δουλεψε.

"Ενημερωτικα.Η γραμμη στον κωδικα = "" τι ελεγχει?
Απάντηση με παράθεση
  #9  
Παλιά 20-03-20, 14:45
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

Γεια σας!


Γιάννη σύμφωνα με τον τίτλο του άρθρου σου (Δημιουργία φακέλου και υποφακέλου ταυτόχρονα) θα έλεγα ότι η MkDir θα δημιουργήσει φάκελο μόνο αν υπάρχει ο γονικός φάκελος.

Τι εννοώ:
Έστω ότι έχουμε το φάκελο "C:\Users\Giannis\Desktop\Test\" μέσα στον οποίο θέλουμε να δημιουργήσουμε προγραμματιστικά .\Test1\Test2\Test3 ώστε να έχουμε : "C:\Users\Giannis\Desktop\Test\Test1\Test2\Test3\

Δεν θα λειτουργήσει απ' ευθείας με την MkDir.

Μπορεί να χρησιμοποιηθεί η εξής συνάρτηση API:
Κώδικας:
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
για να δημιουργηθούν οι φάκελοι .\Test1\Test2\Test3\ αν δεν υπάρχουν ήδη.




Μπορεί κανείς να καλέσει τη συνάρτηση ως εξής:

Κώδικας:
Sub test()
    Dim result As Long
    result = MakeSureDirectoryPathExists("C:\Users\Giannis\Desktop\Test\Test1\Test2\Test3\") 
    ' Προσοχή!! Η τελευταία διαχωριστική κάθετος ( \ ) είναι απαραίτητη.
    If result = 0 Then
        MsgBox "Δεν ήταν δυνατή η δημιουργία φακέλου/ων"
    Else
        ' Ο/οι φάκελοι δημιουργήθηκαν ή υπάρχουν ήδη.
    End If

End Sub
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 20-03-20 στις 18:25.
Απάντηση με παράθεση
  #10  
Παλιά 20-03-20, 23:04
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 83
Προεπιλογή

Τασο Σε ευχαρΙστω και για την δικια σου τοποθετηση.Ομως αφου εξαρχεις δηλωνω ποιοι φακελοι θα γινουν
Κώδικας:
Const strParentFolder As String = "C:\test\"
Κώδικας:
If Dir(strParentFolder, vbDirectory) = "" Then
        MkDir strParentFolder
    End If
Οποτε (ισως και να καταλαβαινω κατι λαθος) ποια η διαφορα με την συναρτηση που προτεινεις?
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Δημιουργία φακέλου με επιλογή της διαδρομής στο δίσκο"C" από τον χρήστη. dimitrisp Access - Ερωτήσεις / Απαντήσεις 10 26-05-16 19:27
[ Φόρμες ] Δημιουργία Φακέλου mgeorge Access - Ερωτήσεις / Απαντήσεις 11 14-03-16 17:41
Άνοιγμα Αρχείου 'Εξερεύνηση των Windows' με δημιουργία Φακέλου john-john Access - Ερωτήσεις / Απαντήσεις 3 14-03-12 09:20
Δημιουργία Φακέλου με VBA Χρήστος Access - Ερωτήσεις / Απαντήσεις 1 12-03-12 21:11


Η ώρα είναι 07:20.